UVA 11729Commando War
来源:互联网 发布:上海学声乐 知乎 编辑:程序博客网 时间:2024/06/07 04:06
非常简单的贪心算法
分配所有任务的总时间是一定有的。
执行时间长的任务先分配,这样任务并行执行重叠的部分就多,花的总时间就少。因此先按照执行时间大小顺序排列。
然后将时间流看成一个坐标轴,Bi是第i个任务的分配时间,Ji是第i个任务的执行时间,则坐标Xi中的最大者即为所求,显然图中的例子是X3
import java.util.ArrayList;import java.util.Collections;import java.util.List;import java.util.Scanner;/* * TITLE: UVA 11729Commando War * RUNTIME: 0.396 s * TIME: 2015-11-07 13:18:11 */public class Main implements Comparable<Main>{private int assignTaskTime;//交代任务的时间private int doTaskTime;//执行任务的时间public Main(int assignTaskTime, int doTaskTime) {this.assignTaskTime = assignTaskTime;this.doTaskTime = doTaskTime;}public int getAssignTaskTime() {return assignTaskTime;}public void setAssignTaskTime(int assignTaskTime) {this.assignTaskTime = assignTaskTime;}public int getDoTaskTime() {return doTaskTime;}public void setDoTaskTime(int doTaskTime) {this.doTaskTime = doTaskTime;}//public boolean CompareTo(Main next){//return this.getDoTaskTime()>next.getDoTaskTime();//}public int compareTo(Main o) {//重写Comparable接口中的compareTo方法,贪心算法,按照任务时间从大到小排序// TODO Auto-generated method stubif(this.getDoTaskTime() < o.getDoTaskTime()){return 1; //返回1,是 o大}return -1; }public static void main(String[] args) {int n ;int num = 0;List<Main> list = new ArrayList<Main>(); //用对象保存一个任务 的‘分配时间’和‘完成时间’Scanner scanner = new Scanner(System.in);while((n=scanner.nextInt())!=0){list.clear();num++;for(int i = 0 ;i<n;i++){list.add(new Main(scanner.nextInt(),scanner.nextInt()));}Collections.sort(list);//按照‘完成时间’大小顺序排int sum = 0 ;//完成所有任务的最短时间int temp = 0;for(Main m:list){//System.out.println("time"+m.getDoTaskTime());temp += m.getAssignTaskTime(); //保存分配完当前任务时已用的时间if((temp+m.getDoTaskTime())>sum){sum = temp+m.getDoTaskTime();}}System.out.println("Case "+num+": "+sum);}}}
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
- maven项目pom中添加依赖,但是jar无法引入项目
- 黑马程序员_正则表达式
- 探索javascript基于原型的继承方式
- strcpy_s与strcpy的比较
- Log4j框架
- UVA 11729Commando War
- Machine Learning week 1 quiz: Linear Regression with One Variable
- 【Codeforces Round 328 (Div 2)A】【水题】PawnChess 棋子向上向下走
- 宏定义的妙用
- 一个超实用的图片加载和显示的小工具PictureEx!
- Android开书籍推荐
- Myeclipse快捷键详细介绍
- ZOJ 1610 Count the Colors(暴力or线段树)
- 【Codeforces Round 328 (Div 2)B】【找规律】The Monster and the Squirrel 正多边形连边分割块数