zoukankan      html  css  js  c++  java
  • 智力大冲浪-贪心

     智力大冲浪(riddl)

    问题

    小伟报名参加中央电视台的智力大冲浪节目。本次挑战赛吸引了众多参赛者,主持人为了表彰大家的勇气,先奖励每个参赛者m元。先不要太高兴!因为这些钱还不一定都是你的?!接下来主持人宣布了比赛规则:
    首 先,比赛时间分为n个时段(n≤500),它又给出了很多小游戏,每个小游戏都必须在规定期限ti 前完成(1≤ti≤n)。如果一个游戏没能在规定期限前完成,则要从奖励费m元中扣去一部分钱wi,wi为自然数,不同的游戏扣去的钱是不一样的。当然, 每个游戏本身都很简单,保证每个参赛者都能再一个时段内完成,而且都必须从整时段开始。主持人只是想考考每个参赛者如何安排组织自己做游戏的顺序。作为参 赛者,小伟很想赢得冠军,当然更想赢取最多的钱!注意:比赛绝对不会让参赛者赔钱。

    输入

    共4行:
    第1行为m,表示一开始奖励给每位参赛者的钱;
    第2行为n,表示有n个小游戏;
    第3行有n个数,分别表示游戏1到n的规定完成期限;
    第4行有n个数,分别表示游戏1到n不能在规定期限前完成的扣款数。

    输出

    仅1行,表示小伟能赢取最多的钱。

    样例输入

    10000
    7
    4 2 4 3 1 4 6
    70 60 50 40 30 20 10
    

    样例输出

    9950

    解析

    我们可以按金钱的多少排序,我们可以把游戏在规定期限的顺序,并用数组记录,如果该规定期限有游戏存在,我们可以把它放在前面一个空着的(直到1~t内全部占满)。

    #include <bits/stdc++.h>
     
    using namespace std;
    const int maxn = 502;
    struct times {
        int a, b;
     
    };
    bool cmp(times a, times b) {
        if(a.b == b.b) {
            return a.a < b.a;
        }
        return a.b > b.b;
    }
     
     
    int main() {
        int  n, sum, a[maxn];
        times s[maxn];
        scanf("%d%d", &sum, &n);
        for(int i = 0; i < n; i++) {
            a[i] = -1;
            scanf("%d", &s[i].a);
            s[i].a -= 1;
        }
        for(int i = 0; i < n; i++) {
            scanf("%d", &s[i].b);
        }
        sort(s, s+n, cmp);
     
        int sum1 = 0;
        for(int i = 0; i < n; i++) {
                    int m = s[i].a;
     
                    while(m >= 0) {
                        if(a[m] == -1) {
                            a[m] = i;
                            break;
                        } else if(m > 0) {
                            m--;
                        } else if(m == 0) {
     
                            sum1 += s[i].b;
                            break;
                        }
                    }
     
     
        }
        printf("%d
    ",sum - sum1);
     
    }
    View Code
    
    
    
    
    
  • 相关阅读:
    mysql日志
    MYSQL-事务中的锁与隔离级别
    MYSQL事务的日志
    Innodb核心特性-事务
    Innodb存储引擎-表空间介绍
    innodb存储引擎简介
    MYSQL之存储引擎
    MYSQL之索引配置方法分类
    MYSQL之索引算法分类
    MYSQL之select的高级用法
  • 原文地址:https://www.cnblogs.com/cshg/p/5658730.html
Copyright © 2011-2022 走看看