智力大冲浪

Posted peppa

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了智力大冲浪相关的知识,希望对你有一定的参考价值。

 

传送门:https://www.luogu.org/problemnew/show/P1230

首先解释一下题意,所谓的时间段指的是[1~这个数字]内的任意个整数都可以做游戏,花费1时间。

很明显这是一道贪心题,为了使得的钱尽可能多,就要使扣的钱尽可能少,因此要先安排扣钱多的游戏。

又为了尽量给后面的游戏让地方,先安排的游戏要尽量选择尽可能靠后的时间。

代码

#include<cstdio>
#include<algorithm> 
using namespace std;
inline int read(){
    static char ch;
    while((ch = getchar()) < 0 || ch > 9);
    int ret = ch - 48;
    while((ch = getchar()) >= 0 && ch <= 9)
        ret = ret * 10 + ch - 48;
    return ret;
}
int m,n,sum;
bool flag,b[505];
struct node{
    int a,b;
}t[505];
bool cmp(node x,node y){return x.b > y.b;}
int main(){
    m = read();
    n = read();
    for(int i = 1;i <= n;i++) t[i].a = read();
    for(int i = 1;i <= n;i++) t[i].b = read();
    for(int i = 1;i <= n;i++) b[i] = true;
    sort(t+1,t+n+1,cmp);
    for(int i = 1;i <= n;i++){
        flag = false;
        for(int j = t[i].a;j >= 1;j--){
            if(b[j]){
                b[j] = 0;
                flag = true;
                break;
            }
        }
        if(!flag) sum += t[i].b;
    }
    printf("%d",m - sum);
    return 0;
}

 

以上是关于智力大冲浪的主要内容,如果未能解决你的问题,请参考以下文章

智力大冲浪

3007 智力大冲浪

智力大冲浪(贪心)

洛谷 P1230 智力大冲浪

loj 10004 智力大冲浪

洛谷 P1230 智力大冲浪