洛谷——P2695 骑士的工作

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了洛谷——P2695 骑士的工作相关的知识,希望对你有一定的参考价值。

https://www.luogu.org/problem/show?pid=2695

题目背景

你作为一个村的村长,保卫村庄是理所当然的了.今天,村庄里来了一只恶龙,他有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

 

不可以多个人砍一个头~~

 1 #include <algorithm>
 2 #include <cstdio>
 3 
 4 using namespace std;
 5 
 6 const int N(20000+15);
 7 int n,m,size[N],kill[N];
 8 int ans,cnt=1;
 9 
10 int main()
11 {
12     scanf("%d%d",&n,&m);
13     for(int i=1;i<=n;i++) scanf("%d",size+i);
14     for(int i=1;i<=m;i++) scanf("%d",kill+i);
15     sort(size+1,size+n+1);
16     sort(kill+1,kill+m+1);
17     for(int i=1;i<=m;i++)
18         if(kill[i]>=size[cnt])
19         {
20             ans+=kill[i];
21             if(++cnt>n) break;
22         }
23     if(cnt<=n) printf("you died!");
24     else printf("%d",ans);
25     return 0;
26 }

 

以上是关于洛谷——P2695 骑士的工作的主要内容,如果未能解决你的问题,请参考以下文章

P2695 骑士的工作

贪心骑士的工作(P2695)

洛谷 P3355 骑士共存问题

洛谷P2607 [ZJOI2008]骑士

洛谷 P2324 [SCOI2005]骑士精神

洛谷 [P3355] 骑士共存问题