uva 11729 - Commando War

来源:互联网 发布:nba球员数据排名 编辑:程序博客网 时间:2024/04/30 19:48

点击打开链接uva 11729


思路:贪心
分析:
1 给定n个人的交待任务的时间和完成任务的时间,要求不能同时给两个人交代任务,但是可以多人同时去做任务,求最短的完成任务的时间
2 根据贪心的原则,我们知道执行时间比较长的任务必须先交待,于是我们只要对这n个任务按照完成任务的时间进行排序,然后枚举n个人进去求解即可。

代码:

#include<cstring>#include<cstdio>#include<iostream>#include<algorithm>using namespace std;const int MAXN = 1010;struct Node{   int b;   int j;   bool operator<(const Node& tmp)const{      if(j > tmp.j)        return true;      if(j == tmp.j && b < tmp.b)        return true;      return false;   }};int n;Node node[MAXN];int main(){    int Case = 1;    while(scanf("%d" , &n) && n){        for(int i = 0 ; i < n ; i++)           scanf("%d%d" , &node[i].b , &node[i].j);        sort(node , node+n);        int ans , tmp;        tmp = ans = 0;        for(int i = 0 ; i < n ; i++){           tmp += node[i].b;//当前任务的开始的执行时间           ans = max(ans , tmp+node[i].j);//更新任务的最晚结束的时间        }        printf("Case %d: %d\n" , Case++ , ans);    }    return 0;}



原创粉丝点击