C语言每日小练(四)——勇者斗恶龙「建议收藏」

C语言每日小练(四)——勇者斗恶龙

大家好,又见面了,我是全栈君。

勇者斗恶龙

你的王国里有一条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语言每日小练(四)——勇者斗恶龙「建议收藏」

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/115300.html原文链接:https://javaforall.net

(0)
上一篇 2022年2月6日 下午12:00
下一篇 2022年2月6日 下午12:00


相关推荐

  • php stristr_str.center()方法的功能是什么

    php stristr_str.center()方法的功能是什么欢迎进入Linux社区论坛,与200万技术人员互动交流>>进入php中strstr函数的用法:strstr()函数搜索一个字符串在另一个字符串中的第一次出现的字符串。该函数返回字符串的其余部分(从匹配点)。如果未找到所搜索的字符串,则返回false.语法strstr(欢迎进入Linux社区论坛,与200万技术人员互动交流>>进入php中strstr函数的…

    2025年11月12日
    7
  • jQuery 焦点图,图像文件js档

    jQuery 焦点图,图像文件js档

    2022年1月13日
    42
  • Xmind激活码(xmind破解版)

    这个方法我也是找了挺久才找到的,供个人借鉴和使用,但不能用于商业用途!本人的电脑系统是:MicrosoftWindows10家庭中文版一、安装软件压缩包解压后有一个文件“xmind-8-update9-windows.exe”,这是从官网上下载的安装包,没有任何改动,大家可以放心使用。该方法适用这个版本,更新后的版本没测试。二、打开安装路径找到XMind.ini文件用记事本等可以编辑文件的打开该文件在最后一行加上↓-javaagent:C:\ProgramFiles(x86)\XM

    2022年4月17日
    6.2K
  • DM368开发 — 文件烧写[通俗易懂]

    DM368开发 — 文件烧写[通俗易懂]参看:DM36x的UBL分析以及串口启动UBL是RBL引导启动的一段小程序,主要负责初始化时钟,串口,NAND,DDR2等,然后把uboot,kernel,rootfs复制到DDR2上并引导uboot。为什么UBL跟串口启动一起讲,那是因为这两个关系很密切,很多代码是共用的,而且代码都放在同一个目录下,所以就合起来一起讲了。一、UBLubl的代码放在dvsdk目录下

    2022年8月13日
    7
  • python每天定时9点执行_python定时执行方法

    python每天定时9点执行_python定时执行方法1time.sleepimporttimeforiinrange(5):print(i)time.sleep(10)2用shedimporttimeimportschedschedule=sched.scheduler(time.time,time.sleep)deffunc(string1,float1):print(“nowis”,time.time(),”…

    2022年7月17日
    27
  • pycharm画图并显示

    pycharm画图并显示在 pycharm 中利用 pylot 画图可是一直不显示 code 如下 frommatplotl np linspace 1 10 20 print x1 y1 x1 x1 2fig plt figure axes fig add axes 0 1 0 1 0 9 0 9 axes plot

    2026年3月27日
    2

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号