zoukankan      html  css  js  c++  java
  • Uva 11292 Dragon of Loowater

    最近再开刘汝佳的算法竞赛入门经典,用它来练题。

    1.1思维的体操 

    题意:   勇者斗恶龙

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

    贪心排序:

    #include<cstdio>
    #include<algorithm>/*因为用到了sort*/
    using namespace std;
    const int maxn=20000+5;
    int A[maxn],B[maxn];
    int main(void){
        int  n,m,i;
        while(scanf("%d%d",&n,&m)==2&&n&&m){
            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);
            int cur=0;    /*当前需要砍掉的头的编号*/
            int cost=0;    /*当前总费用*/
            for(i=0;i<m;i++)
                if(B[i]>=A[cur]){
                    cost+=B[i];  /*雇佣该骑士*/
                    if(++cur==n)break; /*如果头已经砍完,及时退出循环*/
                }
                if(cur<n)printf("Loowater is doomed!
    ");
                else printf("%d
    ",cost);
        }
        return 0;
    }
  • 相关阅读:
    信息反馈--冲刺12
    大道至简阅读笔记02
    信息反馈—冲刺11
    第十二周总结
    大道至简阅读笔记01
    小白学习站点
    校园服务第一阶段意见评论
    第十一周总结
    信息反馈--冲刺10
    信息反馈--冲刺09
  • 原文地址:https://www.cnblogs.com/woshijishu3/p/3648295.html
Copyright © 2011-2022 走看看