题目大意:

你的王国里有一条n个头的恶龙,你希望雇佣一些骑士把它杀死(即砍掉所有头)。村里有m个骑士可以雇佣,一个能力值为x的骑士可以砍掉恶龙一个直径不超过x的头,且需要支付x个金币。如何雇佣骑士才能砍掉龙的所有头,且需要支付的金币最少?注意,一个骑士只能砍一个头。(且不能被雇佣两次)。 输入格式

输入包含多组数据。每组数据的第一行为正整数n和m(1<=n,m<=20000);以下n行每行为一个整数,即恶龙每个头的直径;以下m行每行为一个整数,即每个骑士的能力。输入结束标志为n=m=0。 输出格式

对于每组数据,输出最小花费。如果无解,输出“Loowater is doomed!”。

Solution

显然我们要让勇士砍最适合他的龙,所以就考虑直接排序+贪心就好了...

#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<math.h>
#include<algorithm>
#include<iostream>
#include<queue>
#define ll long long
#define file(a) freopen(a".in","r",stdin);freopen(a".out","w",stdout)
using namespace std;
inline int gi(){
int sum=0,f=1;char ch=getchar();
while(ch>'9' || ch<'0'){if(ch=='-')f=-f;ch=getchar();}
while(ch>='0' && ch<='9'){sum=(sum<<3)+(sum<<1)+ch-'0';ch=getchar();}
return f*sum;
}
inline ll gl(){
ll sum=0,f=1;char ch=getchar();
while(ch>'9' || ch<'0'){if(ch=='-')f=-f;ch=getchar();}
while(ch>='0' && ch<='9'){sum=(sum<<3)+(sum<<1)+ch-'0';ch=getchar();}
return f*sum;
}
const int N=20010;
int a[N],b[N];
int main(){
int i,j,n,m,k;
while(scanf("%d%d",&n,&m)==2 && n && m){
for(i=1;i<=n;i++)a[i]=gi();
for(i=1;i<=m;i++)b[i]=gi();
sort(a+1,a+n+1);sort(b+1,b+m+1);
int t=1;ll ans=0;
for(i=1;i<=m && t<=n;i++){
if(a[t]>b[i])continue;
ans+=b[i];t++;
}
if(t>n)printf("%lld\n",ans);
else puts("Loowater is doomed!");
}
return 0;
}

最新文章

  1. 用java String类的getBytes(String charsetName)和String(byte[] bytes, String charsetName)解决乱码问题
  2. [WPF]有滑动效果的进度条
  3. Node.js 手册查询-2-MongoDB数据库方法
  4. (喷血分享)利用.NET生成数据库表的创建脚本,类似SqlServer编写表的CREATE语句
  5. A potentially dangerous Request.Form value was detected from the client
  6. loadrunner录制脚本出现urs.asmx解决方法:
  7. .NET程序编译原理
  8. 数学 ZJOI 2012 数列
  9. deciaml(十进制浮点运算)
  10. 在Windows环境下部署Axis2/C服务
  11. [置顶] Oracle 11g Data Guard Role Transitions: Failover
  12. Visual Studio 2012设置Jquery/Javascript智能提示
  13. 基于Kurento的WebRTC移动视频群聊技术方案
  14. app与手机其他软件交互测试
  15. ubuntu安装docker{ubuntu16.04下安装docker}
  16. echarts如何给柱形图的每个柱子设置不同颜色
  17. Linux中Grep常用的15个例子【转】
  18. datatables 行与列的数据获取
  19. 转:【专题二】HTTP协议详解
  20. koa2使用阿里云oss的nodejs sdk实现上传图片

热门文章

  1. Vue.js:教程
  2. AJAX验证此ID是否有对应的name
  3. verilog 之语法学习
  4. netty实现远程调用RPC功能
  5. vc6.0出现“cannot add new member”解决办法
  6. ssh secure shell 乱码问题
  7. oracle 11g R2 标准版 64位linux安装
  8. 一.lock的使用
  9. leetcode481
  10. leetcode594