zoukankan      html  css  js  c++  java
  • 【HDU-5246】超级赛亚ACMer(贪心)

    之前用了个nlogn的算法超时了。仅仅能改成n的算法了

    大题贪心思路就是 对每一个人的能力值从小到大进行排序,当前能力值为now,那么我们找到一个人的能力使得这个能力值 <= now。now + 这个人的能力值继续找

    这样都跑了600+MS。看来之前nlogn的TLE的不冤枉。

    #include<cstdio>
    #include<cstring>
    #include<algorithm>
    using namespace std;
    typedef long long LL;
    const int maxn = 10005;
    LL arr[maxn];
    LL m,k;
    int n;
    int main(){
        int T,Case = 1;
        scanf("%d",&T);
        while(T--){
            scanf("%d%I64d%I64d",&n,&m,&k);
            for(int i = 0; i < n; i++)
                scanf("%I64d",&arr[i]);
            sort(arr,arr + n);
            LL now = m;
            int ok = 0;
            printf("Case #%d:
    ",Case++);
            if(m < arr[0]){
                printf("madan!
    ");
                continue;
            }
            for(int i = 0; i < n; ){
                if(arr[i] <= now) i ++;
                else{
                    now = arr[i - 1] + k;
                    if(now < arr[i]) break;
                    else i++;
                    k --;
                }
                if(i == n){
                    ok = 1;
                    break;
                }
            }
            if(ok)
                printf("why am I so diao?
    ");
            else
                printf("madan!
    ");
        }
        return 0;
    }
    


  • 相关阅读:
    optparse--强大的命令行参数处理包
    B/S和C/S架构的区别
    Document
    Document
    Document
    Document
    Document
    Document
    Document
    Document
  • 原文地址:https://www.cnblogs.com/yangykaifa/p/6762462.html
Copyright © 2011-2022 走看看