zoukankan      html  css  js  c++  java
  • hdu 4221 贪心

    Problem: http://acm.hdu.edu.cn/showproblem.php?pid=4221

    对所有任务按截止时间从小到大排序

    然后一次计算每个任务完成的时间 和超过截止的时间 取最大值

    #include<cstdio>
    #include<algorithm>
    using namespace std;
    #define MAXN 100010
    struct Task{
        int c,d;
    }w[MAXN];
    bool cmp(Task a,Task b){
        return a.d<b.d;
    }
    int main()
    {
        int t,n;
        scanf("%d",&t);
        for(int k=1;k<=t;k++){
            scanf("%d",&n);
            for(int i=0;i<n;i++)scanf("%d%d",&w[i].c,&w[i].d);
            sort(w,w+n,cmp);//按截止时间从小到大排序 
            long long ans=0,sum=0;
            for(int i=0;i<n;i++){
                sum+=w[i].c;//任务完成时间 
                ans=max(ans,sum-w[i].d);//取超过截止时间的最大值 
            }
            printf("Case %d: %I64d
    ",k,ans);
        }
        return 0;
    }
    View Code

    刚开始忘了用long long,只是给我返回的居然是TLE,我就不理解了,我怒了.....!

  • 相关阅读:
    Django
    Django
    Django
    6.1
    Django
    Django
    Django
    Django
    Django简介
    web应用/http协议/web框架
  • 原文地址:https://www.cnblogs.com/cshhr/p/3543683.html
Copyright © 2011-2022 走看看