勇者斗恶龙UVa11292 - Dragon of Loowater
https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&category=24&page=show_problem&problem=2267
有一条n个头的恶龙,现在有m个骑士可以雇佣去杀死他,一个能力值为x的勇士可以砍掉直径不超过x的头,而且需要支付x个金币。如何雇佣才能砍掉所有的头且支付最少的金币,注意一个勇士只能砍一个头,也只能被雇佣一次。
输入包含多组数据,每组数据第一行为正整数n,m(1<=n,m<=20000),以下n行每行为一个整数,就是恶龙的头的直径,以下m行每行为一个整数,就是每个骑士的能力值。输入结束标志位m=n=0。
输出格式对于每组数据输出最少花费,如果无解,则输出"Loowater is doomed!"。
输入样例
2 3
5
4
7
8
4
2 1
5
5
10
0 0
这个题意思是挺好理解的,就是x>=n,而且x不能重复使用,本来我是按照习惯
for(int i=0;i<n;i++)
{
for(j=0;j<m;j++)
{
if(b[j]>=a[i])
{
s=s+b[j];
break;
}
}
}
好吧,后来又想x只能用一次啊,然后就改成j=i,但是结果还是不对,然后想数据,发现还是不行,就看了一下书,他是把j放在前面的,
然后就改成了这个
#include<iostream>
#include<algorithm>
using namespace std;
int main()
{
int n,i,m,a[20000],b[20000];
while(cin>>n>>m)
{
if(n==0&&m==0)
break;
int s=0;
for(i=0;i<n;i++)
{
cin>>a[i];
}
for(int j=0;j<m;j++)
{
cin>>b[j];
}
sort(a,a+n);
sort(b,b+m);
for(int j=0;j<m;j++)
{
for(i=j;i<n;i++)
{
if(b[j]>=a[i])
{
s=s+b[j];
break;
}
}
}
if(i<n||s==0)
{
cout<<"Loowater is doomed!"<<endl;
}
else
cout<<s<<endl;
}
return 0;
}
最后判断输出什么是如果骑士的个数少于恶龙的头,那么无论怎么样都不行,如果s==0那也代表没办法
哎,好多天没打代码了,什么都忘了,今天下定决心好好好学。
转载于:https://www.cnblogs.com/hhm324/p/5981507.html
勇者斗恶龙UVa11292 - Dragon of Loowater相关推荐
- UVa11292 - Dragon of Loowater (贪心+模拟)
题目链接 分析: 能力强的骑士开高价是合理的 但是不能大材小用,所以我们直接贪心 把龙和骑士排序之后, 一个一个砍就行了 当然,不能砍掉"当前需要砍掉的头"的骑士我们就不用再考虑t ...
- UVa-11292 Dragon of Loowater (贪心)
题目链接 题意:你的王国里一条n个头的恶龙,你希望雇佣一些骑士砍掉他的所有头,村里有m个骑士可以雇佣,一个能力值为x的骑士可以砍掉恶龙一个直径不超过x的头,且需要支付x个金币,如何雇用骑士才能砍掉恶龙 ...
- UVa11292 - Dragon of Loowater(贪心)
题意:有一个恶龙有n个头,n个头在不同的高度,m个武士,武士只能砍到比它矮的头,而雇佣武士的费用就是武士的高度值,要求以最少的费用来杀到这条恶龙. 思路:在砍一个头时,总是选取比这个头高度大但是在武士 ...
- UVa 11292 勇者斗恶龙(The Dragon of Loowater)
首先先看一下这道题的英文原版... 好吧,没看懂... 大体意思就是: 有一条n个头的恶龙,现在有m个骑士可以雇佣去杀死他,一个能力值为x的勇士可以砍掉直径不超过x的头,而且需要支付x个金币.如何雇佣 ...
- UVA11292 HDU1902 POJ3646 The Dragon of Loowater【贪心】
问题链接:UVA11292 HDU1902 POJ3646 The Dragon of Loowater. 题意简述:(略) 问题分析: 这个问题是一个典型的贪心法问题,求代价最小. 由于需要用到排序 ...
- 勇者斗恶龙(The Dragon of Loowater, UVa 11292)
勇者斗恶龙(改编)(The Dragon of Loowater, UVa 11292) 你的王国里有一条 n 个头的恶龙,你希望雇一些骑士把它杀死(即砍掉所有头).村 里有 m 个骑士可以雇佣,一个 ...
- 历史上的今天(history)+ 勇者斗恶龙(dragon)
朋友们我来了,好久都没有更新了,手实在痒痒,不撸两道,内心过意不去 文章目录 A:历史上的今天(history) 题目 题解 代码实现 B: 勇者斗恶龙(dragon) 题目描述 题解 代码实现 A: ...
- acm的STL容器之队列篇 及 UVa 11292 - Dragon of Loowater 小根堆解法(贪心算法)
2018-07-17 优先队列,即Priority Queues 1.简单介绍一下队列(介绍功能,不作分析) C++队列是一种容器适配器,它给予程序员一种先进先出(FIFO)的数据结构. 1.back ...
- 贪心/思维题 UVA 11292 The Dragon of Loowater
题目传送门 1 /* 2 题意:n个头,m个士兵,问能否砍掉n个头 3 贪心/思维题:两个数组升序排序,用最弱的士兵砍掉当前的头 4 */ 5 #include <cstdio> 6 #i ...
- UVA11292 The Dragon of Loowater
题意: 国王要杀恶龙, 需要雇佣骑士. 每个骑士只能杀一条龙. 当骑士身高 不小于 龙头时, 骑士可以砍下龙头. 雇佣骑士需要钱, 钱就等于他的身高. 如果骑士能成功砍下所有的龙头, 则输出雇佣总费最 ...
最新文章
- 人均6.5万!鹅厂又双叒叕给员工发股票了
- vs2017搭建Linux的开发调试环境(VisualGDB)
- 用Python下载文件
- springboot学习笔记-01-springboot-helloworld的编写以及原理初步了解(自动装配)
- Cell重磅综述:关于人类转录因子,你想知道的都在这
- npm install 卡住的时候的处理
- 刚刚,Facebook开源了星际争霸AI代码
- unity 阳光插件_【复盘】Environmental Composition初尝试总结(附实用插件推荐)
- 驱动人生官网服务器维护,驱动人生在线检测服务 驱动检测更新更加方便
- STM32F103ZET6+红外温度传感器mlx90614芯片
- 支付宝PM告诉你,互联网产品经理的工作职责有哪些?
- jbod ugood 磁盘驱动状态_JBOD磁盘配置和StorCLI命令使用小结
- 网易的java微专业_网易微专业Java开发工程师(Web方向)
- vue-pdf+element实现全屏窗口pdf分页预览,pdf打印实现和解决打印乱码
- uni-app登陆成功跳转到首页后禁止回退到登陆页面
- php统计结果,使用php怎么统计问卷调查结果
- Erlang Introduction(Reproduced)
- 自制MyEclipse豆沙绿主题
- Javascript里EQ、NE、GT、LT、GE、LE含义
- 检测android app是否在白名单内