Ques1017勇者斗恶龙
来源:互联网 发布:常用协议端口 编辑:程序博客网 时间:2024/04/30 03:26
Description
你的王国里有一条n个头的恶龙,你希望雇一些骑士把它杀死(即砍掉所有头)。村里有m个骑士可以雇佣,一个能力值为x的骑士可以砍掉恶龙一个直径不超过x的头,且需要支付x个金币。如何雇佣骑士才能砍掉恶龙的所有头,且需要支付的金币最少?注意,一个骑士只能砍掉一个头(且不能被雇佣两次)。
Input
输入包含多组数据。每组数据的第一行为正整数n和m(1<=n,m<=20 000);以下n行每行为一个整数,即恶龙每个头的直径;以下m行每行一个整数,即每个骑士的能力。输入结束标志为n=m=0。
Output
对于每组数据,输出最少花费。如果无解,输出“Loowater is doomed!”。
Sample Input
2 3
5
4
7
8
4
2 1
5
5
10
0 0
Sample Output
11
Loowater is doomed!
解决思路:排序比较
package day0928;import java.util.ArrayList;import java.util.Collections;import java.util.List;import java.util.Scanner;/** * 你的王国里有一条n个头的恶龙,你希望雇一些骑士把它杀死(即砍掉所有头)。 * 村里有m个骑士可以雇佣,一个能力值为x的骑士可以砍掉恶龙一个直径不超过x的头, * 且需要支付x个金币。如何雇佣骑士才能砍掉恶龙的所有头,且需要支付的金币最少? * 注意,一个骑士只能砍掉一个头(且不能被雇佣两次)。 * * 输入:输入包含多组数据。每组数据的第一行为正整数n和m(1<=n,m<=20 000);以下n行每行为一个整数, * 即恶龙每个头的直径;以下m行每行一个整数,即每个骑士的能力。输入结束标志为n=m=0。 * * 输出:对于每组数据,输出最少花费。如果无解,输出“Loowater is doomed!”。 * @author chenxiaokang * */public class Ques1017 { public static void main(String[] args) { Scanner scan = new Scanner(System.in); List<Integer> dragonHeadList = new ArrayList<Integer>(); List<Integer> costResultList = new ArrayList<Integer>(); List<Integer> resultList = new ArrayList<Integer>(); List<Integer> knightList = new ArrayList<Integer>(); while(scan.hasNext()){ int n = scan.nextInt(); int m = scan.nextInt(); if(m == 0 && n == 0){ for(int i : resultList){ if(i == -1){ System.out.println("Loowater is doomed!"); }else{ System.out.println(i); } } resultList = new ArrayList<Integer>(); } if(m != 0 && n != 0){ dragonHeadList = new ArrayList<Integer>(); knightList = new ArrayList<Integer>(); costResultList = new ArrayList<Integer>(); if(m != 0 && n!= 0){ for(int i = 0;i < n;i++){ dragonHeadList.add(scan.nextInt()); } for(int i = 0;i < m;i++){ knightList.add(scan.nextInt()); } } Collections.sort(dragonHeadList); Collections.sort(knightList); int index = 0; for(int i = 0; i < dragonHeadList.size(); i ++){ for(int j = 0;j < knightList.size(); j ++){ if(dragonHeadList.get(i) <= knightList.get(j)){ costResultList.add(knightList.get(j)); knightList.set(j, -1); index ++; break; } } } if(index < dragonHeadList.size()){ resultList.add(-1); }else{ int cost = 0; for(int i : costResultList){ cost += i; } resultList.add(cost); } } } }}
阅读全文
0 0
- Ques1017勇者斗恶龙
- 勇者斗恶龙
- 勇者斗恶龙
- 勇者斗恶龙
- 勇者斗恶龙
- 勇者斗恶龙
- UVA 11292 勇者斗恶龙
- 算法经典-勇者斗恶龙
- UVA11292 勇者斗恶龙
- 【贪心】【Uva11292】 勇者斗恶龙
- nyoj1103勇者斗恶龙
- 勇者斗恶龙(BFS)
- uva11292 勇者斗恶龙
- 编程练习-勇者斗恶龙
- UVA 11292 勇者斗恶龙
- 贪婪法-勇者斗恶龙
- 18118 勇者斗恶龙
- uva 11292 勇者斗恶龙
- Web前端相关资源
- Objective-C中NSString的使用
- NTFS USN的Create和工具代码汇总
- make -jN
- 准确率、精准率和召回率的理解
- Ques1017勇者斗恶龙
- android开发-Fragment生命周期
- 国庆中秋除了发月饼,企业更应该做什么?
- tomcat7启动很慢,Eclipse运行也很缓慢
- cifar10-cifar100各种版本下载
- 基于jquery与jquery.form.js的表单文件流提交和上传体验提升
- 欢迎使用CSDN-markdown编辑器
- 非结构化数据--mongodb数据库的基本操作
- virtual box 转移虚拟机