zoukankan      html  css  js  c++  java
  • UVa 11292 Dragon of Loowater (水题,排序)

    题意:有n个条龙,在雇佣勇士去杀,每个勇士能力值为x,只能杀死头的直径y小于或等于自己能力值的龙,只能被雇佣一次,并且你要给x赏金,求最少的赏金。

    析:很简单么,很明显,能力值高的杀直径大的,低的杀直径小的。所以我们先对勇士能力值从小到大排序,然后对龙的直径从小到大排序,

    然后扫一遍即可,如某个勇士杀不龙,就可以跳过,扫到最后,如果杀完了就结束,输出费用,否则就是杀不完。

    代码如下:

    #include <iostream>
    #include <cstdio>
    #include <climits>
    #include <cmath>
    #include <algorithm>
    #include <cstring>
    #include <map>
    
    using namespace std;
    const int maxn = 20000 + 10;
    
    int a[maxn], b[maxn];
    
    int main(){
        int n, m;
        while(scanf("%d %d", &n, &m) && m && n){
            for(int i = 0; i < n; ++i)    scanf("%d", &a[i]);
            for(int i = 0; i < m; ++i)    scanf("%d", &b[i]);
    
            sort(a, a+n);  sort(b, b+m);
            if(n > m){  printf("Loowater is doomed!
    ");  continue;   }//勇士太少,直接结束
    
            int cnt = 0, cost = 0;
            for(int i = 0; i < m; ++i)
                if(b[i] >= a[cnt]){
                    cost += b[i];//记下费用
                    if(++cnt == n)  break;//龙杀完了,提前退出
                }
            if(cnt < n)  printf("Loowater is doomed!
    ");
            else printf("%d
    ", cost);
        }
        return 0;
    }
    
  • 相关阅读:
    Java.io 包(字节流)
    Java 集合框架(常用数据结构)
    Java.util 包(Date 类、Calendar类、Random类)
    Java.lang 包 (包装类、String类、Math类、Class类、Object类)
    Java 多态(接口)
    maxcompute troubleshoot
    maxcompute
    文件命名
    weblogic修改ServerName
    设计模式---策略模式
  • 原文地址:https://www.cnblogs.com/dwtfukgv/p/5547888.html
Copyright © 2011-2022 走看看