zoukankan      html  css  js  c++  java
  • 【贪心】骑士的工作(P2695)

    题目背景

    你作为一个村的村长,保卫村庄是理所当然的了.今天,村庄里来了一只恶龙,他有n个头,恶龙到处杀人放火。你着急了。不过天无绝人之路,现在来了一个骑士团。里面有m位成员(往下看)

    题目描述

    每个人都可以砍掉一个大小不超过(<=)z的头,要money个金币,求最小花费。

    输入输出格式

    输入格式:

    第一行两个整数 n m

    下接n行,一个整数 表示n个头的大小。

    下接m行,每个人可以砍的头大小或金币(金币==头的大小)。

    输出格式:

    一个整数,最小花费。如果无解,输出“you died!”

    输入输出样例

    输入样例#1:
    2 3
    5 
    4
    7 
    8
    4
    输出样例#1:
    11

    说明

    1<=n,m<=20000

    分析

    水题,运用贪心,将money数组从小到大排序,从小的开始试。

    参考代码

    #include <iostream>
    #include <cstdio>
    #include <algorithm>
    using namespace std;
    
    int main()
    {
        int n,m;
        int tou_size[20001];
        int money[20001];
        int sum=0;
        scanf("%d%d",&n,&m);
        for(int i=0;i<n;i++){
            scanf("%d",&tou_size[i]);
        }
        for(int i=0;i<m;i++){
            scanf("%d",&money[i]);
        }
        sort(tou_size,tou_size+n);
        sort(money,money+m);
        int j=0,k=0;
        while(1){
            if(k>=n||j>=m)
            break;
            if(money[j]>=tou_size[k]){
                sum+=money[j];
                j++;
                k++;
            }else{
                j++;
            }
        }
        if(k<n){
            printf("you died!
    ");
        }
        else{
            printf("%d
    ",sum);
        }
        return 0;
    }
  • 相关阅读:
    java 基础语法 2
    hdu4570Multi-bit Trie
    poj1244Slots of Fun
    二维凸包模板
    花神的数论题(数位dp)
    poj1113Wall(凸包)
    poj1066Treasure Hunt(线段相交)
    poj1039Pipe(直线交点、叉积)
    hdu4588Count The Carries
    hdu2475Box(splay树形转线性)
  • 原文地址:https://www.cnblogs.com/LuRenJiang/p/7501634.html
Copyright © 2011-2022 走看看