UVA 11729 Commando War(贪心)
2015-02-04 21:00
323 查看
题目大意:
你有n个部下,每个部下需要完成一项任务。第i个部下需要你花Bi分钟交待任务,然后他会立刻独立地、无间断地执行Ji分钟后完成任务。你需要选择交待任务的顺序,使得所有任务尽早执行完毕(即最后一个执行完的任务应尽早结束)。注意,不能同时给两个部下交待任务,但部下们可以同时执行他们各自的任务。
解析:
直觉告诉我们,执行时间较长的任务应该先交待。于是我们想到这样一个贪心算法:按照J从大到小的顺序给各个任务排序,然后依次交待。
你有n个部下,每个部下需要完成一项任务。第i个部下需要你花Bi分钟交待任务,然后他会立刻独立地、无间断地执行Ji分钟后完成任务。你需要选择交待任务的顺序,使得所有任务尽早执行完毕(即最后一个执行完的任务应尽早结束)。注意,不能同时给两个部下交待任务,但部下们可以同时执行他们各自的任务。
解析:
直觉告诉我们,执行时间较长的任务应该先交待。于是我们想到这样一个贪心算法:按照J从大到小的顺序给各个任务排序,然后依次交待。
#include <cstdio> #include <cstring> #include <algorithm> using namespace std; const int N = 1005; struct Task { int b,j; }t ; int n; bool cmp(Task a,Task b) { return a.j > b.j; } int main() { int cas = 1; while(scanf("%d",&n) != EOF && n) { for(int i = 0; i < n; i++) { scanf("%d%d",&t[i].b,&t[i].j); } sort(t,t+n,cmp); int start ,end; start = end = 0; for(int i = 0; i < n; i++) { start += t[i].b; if(end < t[i].j + start) { end = t[i].j + start; } } printf("Case %d: %d\n",cas++,end); } return 0; }
相关文章推荐
- 贪心-突击战(Commando War, UVa 11729)
- UVa 11729 Commando War 【贪心】
- HDU:3420 Bus Fair, 3090 Go Home+uva:11729 Commando War(简单贪心)
- |UVA 11729|贪心|Commando War
- Commando War UVa 11729(贪心)
- UVa 11729 Commando War 突击战(贪心)
- UVa11729 - Commando War(贪心)
- UVA 11729 COMMANDO WAR【贪心】
- UVA 11729 - Commando War(贪心 相邻交换法)
- UVA - 11729 Commando War 贪心
- UVA 11729(Commando War-按执行时间贪心)
- UVa Commando War-11729(排序+贪心)
- UVa11729 - Commando War (贪心/思维)
- UVA11729 Commando War (贪心)
- UVa 11729 Commando War / 贪心
- Uva 11729 Commando War - 水题 - 贪心
- UVa Commando War 11729 (贪心)
- UVa 11729 Commando War——贪心
- UVA 11729 Commando War 贪心的思想
- UVa11729 Commando War(贪心)