uva 11729-Commando War
来源:互联网 发布:sql syntax什么意思 编辑:程序博客网 时间:2024/06/14 19:49
题目大意:
有N个部下,每个部下需要完成一项任务,第i个部下需要你花Bi分钟交代任务,然后他会立刻独立的,无间断的执行Ji分钟后完成任务,你需要选择交代任务的顺序,使得所有的任务都能尽早的执行完毕(即最后一个执行完的任务应该要尽早的执行完毕)。注意不能同时给两个部下交代任务,但是部下可以同时执行他们各自的任务。
【输入格式】
输入包含多组数据,每组数据的第一行为部下的个数N(1<=N<=1000);以下N行每行两个正整数B和J(1<=B<=10000 , 1<=J<=10000),即交代任务的时间和执行任务的时间。输入结束标记为N=0;
【输出格式】
对于每组数据,输出所有任务完成的最短时间。
【样例输入】
3
2 5
3 2
2 1
3
3 3
4 4
5 5
0
【样例输出】
Case 1: 8
Case 2:15
【分析】
执行时间较长的任务应该先安排交代,所以使用贪心算法,按J从大到小排序安排任务,代码如下
#include <stdio.h>#include <vector>#include <algorithm>using namespace std;struct job{int j,b;bool operator < (const job& x) const{ //运算符重载 return j > x.j;}};int main(){int n,b,j,kase = 1;while(scanf("%d",&n) ==1 && n){vector<job> v;for(int i=0;i<n;i++){scanf("%d%d",&b ,&j);v.push_back(job{j,b});}sort(v.begin(),v.end());int s=0;int ans=0;for(int i = 0; i < n ;i++){s += v[i].b;ans = max(ans, s+v[i].j);}printf("Case %d: %d\n",kase++, ans);}return 0;}
0 0
- uva --11729-- Commando War
- UVa 11729 Commando War
- uva - 11729 - Commando War
- UVA 11729 - Commando War
- uva 11729 - Commando War
- Uva-11729-Commando War
- UVA 11729 - Commando War
- UVA 11729 Commando War
- UVA 11729 - Commando War
- UVA 11729 Commando War
- UVA 11729 - Commando War
- Commando War, UVa 11729
- UVa 11729 - Commando War
- UVA 11729 Commando War
- uva 11729 Commando War
- Uva 11729 Commando War
- uva 11729 Commando War
- UVA - 11729 Commando War
- Java内部类访问局部变量时的final问题
- mysql page-level
- Maven项目的jetty调试
- Android基础篇之Activity(二) - Activity生命周期
- oracle latch工作原理
- uva 11729-Commando War
- OpenGL——就是暑假无聊想聊聊结束的上个学期的一门课
- Java 访问控制符详解
- 如何在bex5中添加grid列表
- HDU 3466(Proud Merchants)有条件01背包
- 音频重采样的实现
- LightOj Mysterious Bacteria
- 序
- .bash_profile .alias bin .vimrc etc.