突击战【JAVA算法实现】
来源:互联网 发布:未再网络上注册怎么办 编辑:程序博客网 时间:2024/05/17 08:07
题目描述
你有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
分析
1.执行时间较长的任务先交待,这样可以充分利用任务执行时间去交待后面的任务
2.交待时间是一定耗费的;累加所有的交待时间再加上最后完成的任务的剩余的执行时间就是最终答案。
import java.util.*;public class Main implements Comparable {int b; int j;public Main(int bb, int jj) {b = bb;j = jj;}public int compareTo(Object m) {return (j > ((Main) m).j ? -1 : (j == ((Main) m).j) ? 0 : 1);}public static void main(String arg[]) {Scanner cin = new Scanner(System.in);int casenum=0;while (cin.hasNext()) {final int n = cin.nextInt();Main[] m = new Main[n];for (int i = 0; i < n; i++) {m[i]=new Main(cin.nextInt(),cin.nextInt());}Arrays.sort(m);int time=0,temp=0;for(int i=0;i<n;i++){time+=m[i].b;if((temp-=m[i].b)<=0)temp=0;if(temp<m[i].j)temp=m[i].j;}time+=temp;System.out.println("Case "+(++casenum)+": "+time);}}}
0 0
- 突击战【JAVA算法实现】
- 算法入门之突击战(贪心)
- 算法竞赛入门经典 突击战
- 突击战
- 经典算法分析与设计——突击战
- 突击java,无所适从。
- Commando War(突击战)
- uva11729 突击战
- UVa 11729突击战
- UVA 11729 突击战
- uva11729突击战!!!
- uva 11729 突击战
- UVa 11729-突击战
- ZCMU-1018: 突击战
- UVa11729 Commando War(突击战)
- 例题1.2 突击战 UVa11729
- (uva 11729)突击战( Commando War)
- UVA 11729突击战(贪心)
- 本地代码中使用Java对象
- RTX安装后不能打开 Win7 Win8
- HDU3555 Bomb 数位DP
- 编写Shell脚本监测服务器状态
- 动态规划走楼梯
- 突击战【JAVA算法实现】
- Codeforces Round #277.5 (Div. 2)-C
- Count and Say
- linux 下关闭启动sendmail 服务
- android ListView 一些重要属性详解
- C# 实现设置系统环境变量设置
- git 命令
- 深入解析Apache Mina源码(4)——Mina编解码以及对粘包和断包的处理
- 青岛泽雨你到底怎么了???人去楼空了,难道真的要倒闭了吗?