勇者斗恶龙

你的王国里有一条n个头的恶龙,你希望雇佣一些骑士把它杀死(砍掉全部的头)。

村里有m个骑士能够雇佣。一个能力值为x的骑士能够砍掉恶龙一个致敬不超过x的头,且须要支付x个金币。

怎样雇佣骑士才干砍掉恶龙的全部头。且须要支付的金币最少?注意,一个骑士仅仅能砍一个头(且不能被雇佣两次)。

输入格式:输入包括多组数据。

每组数据的第一行为正整数n和m(1<=n,m<=20000);下面n行每行为一个整数。即恶龙每一个头的直径。下面m行每行为一个整数,即每一个骑士的能力。

输入结束标志为n=m=0.

输出格式:对于每组数据。输出最少花费。假设无解,输出“Loowater is doomed!”。

例子输入:

2 3

5

4

7

8

4

2 1

5

5

10

0 0

例子输出:

11

Loowater is doomed!

解:此题直接按例如以下思路:龙头大小和骑士能力值排序->分别比較->雇佣满足条件的骑士~就可以~

附上代码:

#include<cstdio>
#include <iostream>
#include<algorithm>
using namespace std; #define MAX 20000 int warriors[MAX];
int dragon[MAX]; int main()
{
int i, j, sum;
int n, m;
while(scanf("%d%d", &n, &m) == 2 && n && m)
{
for(i = 0; i < n; i++) scanf("%d", &dragon[i]);
for(j = 0; j < m; j++) scanf("%d", &warriors[j]);
sort(dragon, dragon+n); sort(warriors, warriors+m); //将龙头和骑士从小到大排序
j = 0; sum = 0;
for(i = 0; i < m; i++)
{
if(warriors[i] >= dragon[j]) //假设骑士能力值足够,能够砍掉此龙头
{
sum += warriors[i]; //雇佣该骑士
j++;
}
if(j == n) break;
}
if(j == n) printf("%d\n", sum);
else printf("Loowater is doomed!\n");
}
return 0;
}

执行结果:

C语言每日小练(四)——勇者斗恶龙的更多相关文章

  1. C语言每日一练——第7题

    一.题目要求 已知数据文件in.dat中存有200个四位数,把这些数存到数组a中,编写函数jsVal(),其功能是:把千位数字和十位数字重新组成一个新的含有两位数字的数ab(新数的十位数字是原四位数的 ...

  2. C/C++每日小练(七)——墓地雕塑

    墓地雕塑 题目描写叙述: 在一个周长为10000的圆上等距分布着n个雕塑. 如今又有m个新雕塑增加(位置能够任意放).希望全部n+m个雕塑在圆周上均匀分布.这就须要移动当中一些原有的雕塑.要求n个雕塑 ...

  3. C语言每日一练——第6题

    一.题目要求 计算500~800区间素数的个数cnt,并按所求素数的值从大到小的顺序,计算其间隔间的减.加之和,即第1个素数-第2个素数+第3个素数-第4个素数+第5个素数.....的值sum.最后把 ...

  4. C语言每日一练——第4题

    一.题目要求 已知数据文件in.dat中有300个四位数,并调用readDat()函数把这些数存储数组a中,编写函数jsValue(),其功能是:求出所有这些四位数是素数的个数cnt,再把所有满足此条 ...

  5. C语言每日一练——第2题

    一.题目要求 已知数据文件in.dat中存有300个四位数,并调用读函数readDat()把这些数存入数组a中,请编制一函数jsValue(),其功能是:求出所有这些四位数是素数的个数cnt,再求出所 ...

  6. C语言每日一练——第5题

    一.题目要求 选出大于100小于1000的所有个位数与十位数字之和被10除所得余数恰好是百位数字的所有数字(如293).计算并输出上述这些素数的个数cnt以及这些素数值得sum,最后把结果cnt和su ...

  7. C语言每日一练——第3题

    一.题目要求 程序功能:计算100以内满足以下条件的所有整数i的个数cnt以及这些i之和sum.条件:i, i+4 ,i+10都是素数,同时i+10小于100.最后电影函数writeDAT()函数把结 ...

  8. C语言每日一练——第1题

    一.程序功能 程序的功能是:将大于整数m且紧靠m的k个素数存入数组xx.并把in.dat文件的内容输入到程序,并把输出结果输出道out.dat文件夹中例如:若输入17,5 则应该输入:19,23,29 ...

  9. CSS3每日一练之选择器-结构性伪类选择器

    <!DOCTYPE HTML> <html> <head> <meta charset="gb2312"> <title> ...

随机推荐

  1. python3 安装

    Centos7 安装python3 #安装sqlite-devel yum -y install sqlite-devel #安装依赖 yum -y install make zlib zlib-de ...

  2. MySQL学习笔记:计算机服务中找不到MySQL服务

    不知道什么原因,连接了远程服务器之后,本地服务就连接不上. 经排查,发现服务中的MySQL服务居然不见,一番搜索之后,在CMD中进入到MySQL安装目录的bin下执行以下语句: mysqld.exe ...

  3. 关于RundownProtect到底是什么东西

    RundownProtect这个字段相信只要是读过WRK源码的都会看过这个东西,这个字段在进程和线程的结构中都存在.最典型的例子就是对进程要进行什么操作的时候会先引用这个字段进行加保护,等操作结束后再 ...

  4. css实现360导航首页超链接变色

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  5. glBlendFunc的几种常用情况

    先Mark一下,后面有时间补上DEMO 1.画航母大灯,手电筒(效果为:透过黑色半透明层可看到下面的背景图,仅圆圈部分) 1)先画圆圈 2)再画背景图(大背景) 大背景设置  glBlendFunc ...

  6. day5模块学习--random模块

    Python中的random模块用于生成随机数 下面具体介绍random模块的功能:   1.random.random() #用于生成一个0到1的浮点数   随机浮点数:0<= n < ...

  7. Loadrunner参数化逗号报错解决方法

    Loadrunner参数化逗号报错解决方法     介绍Loadrunner参数化时,参数中包含有逗号时出错的解决方法. 在Loadrunner进行参数化时,参数中如果含有逗号,编辑保存后会报错: 此 ...

  8. jenkins发布maven项目

    (1)环境介绍 (2)配置ssh配置:系统管理--->系统设置 做这样的配置是方便打包之后war包或jar包复制到/tomcat/update目录下 (3)安装git 1丶不要使用1.8版本以下 ...

  9. HP电脑的增霸卡功能操作详解

    机房管理中HP电脑的增霸卡功能操作详解 一.软件去除保护 1).电脑开机后等待进入增霸卡选择系统界面: 2).按F1帮助,F10进入增霸卡BIOS界面: 3).光标切换到>>>系统还 ...

  10. Docker应用系列(六)| 如何去掉sudo及避免权限问题

    一.如何在使用docker时去掉sudo 1.添加账户 $ sudo groupadd docker 2.授权给docker账户 sudo gpasswd -a yourname docker 3.重 ...