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;
    }
  • 相关阅读:
    metal的gpu query
    体积雾 global fog unity 及改进
    hdr rt format对颜色的影响
    unity deferred lighting
    unity linear space时 photoshop blend的正确设置
    unity linear work flow
    一些数据 bandwidth之类
    deferred rendering with msaa
    unity 显示mipmaplevel
    【转】在C#中使用SendMessage
  • 原文地址:https://www.cnblogs.com/LuRenJiang/p/7501634.html
Copyright © 2011-2022 走看看