Uva 11292 The Dragon of Loowater

题意:在一个国家,m个鸭子出现了变异,变成了恶龙,国王有n个骑士,想要杀掉所有的恶龙要保护国家的安全,如果不能将其全部杀死,那么国家便要灭亡、 给出你m个恶龙的身高,和每个骑士的身高,只有当骑士的身高大于等于恶龙的身高,骑士才能杀死恶龙、 然而派出骑士要话费一些金额,他的金额与骑士的身高是一样的、国王是否能杀死所有的恶龙,如果能杀死,国王想要话费最小的代价来杀死所有的恶龙、 如果杀不死恶龙国家便要灭亡输出 Loowater is doomed! 

思路:排序+贪心  要注意的是每个骑士只能使用一次,其他的只需要找出大于恶龙身高的其实中身高最小的便可,如果没有将其全部杀死那么直接输出Loowater is doomed! 否则输出代价、

AC代码:

#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;
const int maxn=110000;
int n,m;
int a[maxn],b[maxn];
int vis[maxn];
int x,y,ans;
int main()
{
    while(scanf("%d %d",&m,&n)!=EOF){
        if(m+n==0)break;
        memset(vis,0,sizeof(vis));
        for(int i=0;i<m;i++)
            scanf("%d",&a[i]);
        for(int i=0;i<n;i++)
            scanf("%d",&b[i]);
        sort(a,a+m);
        sort(b,b+n);
        x=y=ans=0;
        while(1){
            if(x==m||y==n)break;
            if(a[x]<=b[y]){
                ans+=b[y];
                vis[x]=1;
                x++,y++;
            }
            else
                y++;
        }
        int falg=0;
        for(int i=0;i<m;i++)
            if(vis[i]==0){
                falg=1;
                break;
            }
        if(falg)
            printf("Loowater is doomed!\n");
        else
            printf("%d\n",ans);
    }
    return 0;
}


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值