洛谷 2695 骑士的工作 排序+贪心 解题报告
来源:互联网 发布:华康字体淘宝可以用吗 编辑:程序博客网 时间:2024/06/08 19:57
题目背景
你作为一个村的村长,保卫村庄是理所当然的了.今天,村庄里来了一只恶龙,他有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
思路
首先把两个数组排序,然后比较大小先看看可不可以砍完。
然后就像最小生成树那种感觉找就行了
代码
#include<iostream>#include<cstdio>#include<cstring>#include<cmath>#include<cstdlib>#include<algorithm>using namespace std;const int N=100000+5;int n,m,a[N],b[N],top=1,tot=0,sum=1,flag=0;int main(){ scanf("%d%d",&n,&m); for(int i=1;i<=n;i++) scanf("%d",&a[i]); sort(a+1,a+n+1); for(int i=1;i<=m;i++) scanf("%d",&b[i]); sort(b+1,b+m+1); if (n>m) printf("you died!"); else { while(sum!=n+1) { if (b[top]>=a[sum]) { tot+=b[top]; top++; sum++; } else top++; if (top==m+1&&sum!=n+1) {flag=1;break;} } if (flag==1) printf("you died!"); else printf("%d\n",tot); } return 0;}
阅读全文
0 0
- 洛谷 2695 骑士的工作 排序+贪心 解题报告
- [ZJOI2008]骑士解题报告
- 洛谷 1803 凌乱的yyy 贪心 解题报告
- 贪心思想题的解题报告
- 洛谷 1650 赛马 贪心 解题报告
- POJ1328解题报告 (贪心)
- codevs 1219 骑士游历 DP 解题报告
- 【工作依赖】解题报告
- hdu1106排序解题报告 STL的应用
- HLJU@贪心练习 解题报告
- BZOJ 3119 贪心 解题报告
- BZOJ 2563 贪心 解题报告
- 洛谷P1983 拓扑排序 解题报告
- POJ1042解题报告,很简单的贪心枚举
- SDUT 3548 疯狂的小金 (贪心) -- 解题报告
- codevs 1144 守望者的逃离 贪心? 解题报告
- 绝对值排序解题报告
- 解题报告:POJ_1833 排序
- 归并排序
- Python菜鸟教程(一)-爬b站数据
- 实战命令
- [BZOJ4488][JSOI2015]最大公约数 DP+STL
- STL搜索算法小结
- 洛谷 2695 骑士的工作 排序+贪心 解题报告
- 数字黑洞
- 不基于比较的基数排序原理图解
- 全球研发开支排名:亚马逊第一,BATJ排不上号!
- Gartner公布2018十大技术发展趋势 2025年AI重塑商业模式
- 自动化对就业没有影响?看看这张图再说
- 安卓studio jni调用第三方静态库CMakeLists配置
- 干货!解读2016-2017全球人工智能技术及产业发展的现状及趋势~
- 中国研制出首款搭载寒武纪AI芯片的人工智能服务器