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;
    }
  • 相关阅读:
    第八节 JS运动基础
    第七节 DOM操作应用-高级
    第六节 DOM操作应用
    第五讲 DOM基础
    第二节 数学基础与语言学基础
    第一节 自然语言处理概论
    第0节 课程简述
    第四节 定时器
    基本概念
    常用命令
  • 原文地址:https://www.cnblogs.com/LuRenJiang/p/7501634.html
Copyright © 2011-2022 走看看