题目链接

分析:
能力强的骑士开高价是合理的
但是不能大材小用,所以我们直接贪心
把龙和骑士排序之后,
一个一个砍就行了
当然,不能砍掉“当前需要砍掉的头”的骑士我们就不用再考虑ta了

tip

成功的砍掉一个头之后,不要忘了把骑士的指针向后推移一位

附图:

//这里写代码片
#include <iostream>
#include <cstdio>
#include <cstring>
#include <algorithm>
using namespace std;
const int M=20005;
int a[M],b[M];
int main()
{  int n,m;  while(scanf("%d%d",&n,&m)&&n&&m)  {  int i,j=0,sum=0;  for(i=0;i<n;i++)  scanf("%d",&a[i]);  for(i=0;i<m;i++)  scanf("%d",&b[i]);  sort(a,a+n);  sort(b,b+m);  for(i=0;i<m;i++)  if(b[i]>=a[j])  {  sum+=b[i];  if(++j==n) break;  }  if(j<n) printf("Loowater is doomed!\n");  else printf("%d\n",sum);  }  return 0;
}  

当然,还有一种更优美的写法:

//这里写代码片
#include<cstdio>
#include<cstring>
#include<iostream>
#include<algorithm>using namespace std;int n,m;
int dragon[20010],knight[20010];
int ans=0;int main()
{while (scanf("%d%d",&n,&m)!=EOF&&n&&m){for (int i=1;i<=n;i++) scanf("%d",&dragon[i]);for (int i=1;i<=m;i++) scanf("%d",&knight[i]);if (n>m) {printf("Loowater is doomed!\n");continue;}sort(dragon+1,dragon+1+n);sort(knight+1,knight+1+m);ans=0;int cnt=1;for (int i=1;i<=m;i++)if (knight[i]>=dragon[cnt]){ans+=knight[i];if (++cnt>n) break;}if (cnt<n) printf("Loowater is doomed!\n");else printf("%d\n",ans);}return 0;
}

转载于:https://www.cnblogs.com/wutongtong3117/p/7673026.html

UVa11292 - Dragon of Loowater (贪心+模拟)相关推荐

  1. UVa-11292 Dragon of Loowater (贪心)

    题目链接 题意:你的王国里一条n个头的恶龙,你希望雇佣一些骑士砍掉他的所有头,村里有m个骑士可以雇佣,一个能力值为x的骑士可以砍掉恶龙一个直径不超过x的头,且需要支付x个金币,如何雇用骑士才能砍掉恶龙 ...

  2. UVa11292 - Dragon of Loowater(贪心)

    题意:有一个恶龙有n个头,n个头在不同的高度,m个武士,武士只能砍到比它矮的头,而雇佣武士的费用就是武士的高度值,要求以最少的费用来杀到这条恶龙. 思路:在砍一个头时,总是选取比这个头高度大但是在武士 ...

  3. uva11292 - The Dragon of Loowater (贪心)

    题目: 有n头恶龙,diameter存其直径,有m个骑士,height存其身高,国王雇佣骑士杀恶龙,佣金为所雇佣骑士身高之和,每个骑士只能杀一条龙且只能被雇一次,求国王需付最少佣金. 思路: 排序   ...

  4. UVA11292 HDU1902 POJ3646 The Dragon of Loowater【贪心】

    问题链接:UVA11292 HDU1902 POJ3646 The Dragon of Loowater. 题意简述:(略) 问题分析: 这个问题是一个典型的贪心法问题,求代价最小. 由于需要用到排序 ...

  5. 贪心/思维题 UVA 11292 The Dragon of Loowater

    题目传送门 1 /* 2 题意:n个头,m个士兵,问能否砍掉n个头 3 贪心/思维题:两个数组升序排序,用最弱的士兵砍掉当前的头 4 */ 5 #include <cstdio> 6 #i ...

  6. acm的STL容器之队列篇 及 UVa 11292 - Dragon of Loowater 小根堆解法(贪心算法)

    2018-07-17 优先队列,即Priority Queues 1.简单介绍一下队列(介绍功能,不作分析) C++队列是一种容器适配器,它给予程序员一种先进先出(FIFO)的数据结构. 1.back ...

  7. 勇者斗恶龙(The Dragon of Loowater, UVa 11292)

    勇者斗恶龙(改编)(The Dragon of Loowater, UVa 11292) 你的王国里有一条 n 个头的恶龙,你希望雇一些骑士把它杀死(即砍掉所有头).村 里有 m 个骑士可以雇佣,一个 ...

  8. 校内hu测(10.6T2,T3)(乱搞+贪心+模拟)

    @liu_runda T2.便(then) [题目描述] 给出一个R*C的棋盘.共有R行C列,R*C个格子.现要在每个格子都填一个非负整数.使得任意一个2*2的正方形区域都满足这样的性质:左上角的数字 ...

  9. 【NOIP2013】积木大赛(差分数组,贪心模拟)

    题目 原题链接 问题描述 分析 直观思路--贪心模拟:每次都处理最长正整数区段. 以[2,3,4,1,2][2,3,4,1,2][2,3,4,1,2]为例: [2,3,4,1,2]⟹[1,2,3,0, ...

最新文章

  1. LeetCode简单题之检查某单词是否等于两单词之和
  2. C语言经典例96-计算字符串中子串出现的次数
  3. Python实用笔记 (2)list和tuple
  4. sap转换成基本订单单位
  5. emlog充值插件_常用十大必备Emlog插件
  6. jquery ajax 防止浏览器缓存
  7. 缓存世界中的三大问题及解决方案
  8. Oracle修改globalname,oracle修改global_name和service_name
  9. 快速学习django
  10. pdffactory 打印字体_PdfFactory Pro(PDF虚拟打印软件) 中文版分享
  11. D4.8 Write transactions
  12. 怎么让台式计算机散发wifi,怎样能让台式电脑发出WIFI信号?
  13. FlinkSQL 读写 MySQL
  14. layui table 表头合并_LayUI Table复杂表头实现
  15. 计算机中可以由用户设置的文件属性,计算机考试模拟试题
  16. linux裁剪图片的软件,【美图秀秀Linux版】美图秀秀Linux版下载 v1.0.0.0 免费最新版-趣致软件园...
  17. 扩充计算机内存是扩充什么,怎么增加电脑内存 三种方法让你电脑内存扩大
  18. 网络游戏防沉迷实名认证系统- 常见问题02
  19. java fix sence_repair fix mend的区别
  20. 【轻微课学画笔记】关于绘画中的一点透视

热门文章

  1. springboot中使用websocket_Spring Boot中Lombok使用
  2. java8 stream 分组_Java 8 中 Map 骚操作之 merge() 的用法
  3. Java工作笔记-JPA中Repository新增自定义更新操作
  4. Linux学习笔记-对父子进程直接通信基础与实例
  5. 计算机组成原理个人笔记(一)
  6. Qt5.7+Opencv2.4.9人脸识别(四)模型训练
  7. 未转变者服务器未正常运行,未转变者Battleye服务不能正常运行 | 手游网游页游攻略大全...
  8. 51单片机扩展io口实验c语言,【51单片机】普通I/O口模拟SPI口C语言程序
  9. cv mat保存图片_(七)神秘的Mat
  10. android商城开源框架,Android商城开源项目--轻松购