hdu 4544 湫湫系列故事——消灭兔子 贪心+sbt
来源:互联网 发布:java web 书 编辑:程序博客网 时间:2024/05/22 09:15
题目链接:
http://acm.hdu.edu.cn/showproblem.php?pid=4544
题目意思:
n只兔子,每只有个血量。
m支箭,每支箭有伤害量,购买所需Q币。
每只兔子只能被射一次,每支箭只能射一次。
求把所有兔子都杀死的所需最小Q币。
解题思路:
贪心+数据结构
先把兔子血量从大到小排序,再把箭的伤害量从大到小排序。
对于每只兔子,找到能够杀死它并且所需Q币最少的箭。//可以用multiset或priority_queue保存最小的Q币箭。
代码:
#include<iostream>#include<cmath>#include<cstdio>#include<cstdlib>#include<string>#include<cstring>#include<algorithm>#include<vector>#include<map>#include<set>#include<stack>#include<list>#include<queue>#define eps 1e-6#define INF 0x1f1f1f1f#define PI acos(-1.0)#define ll __int64#define lson l,m,(rt<<1)#define rson m+1,r,(rt<<1)|1using namespace std;/*freopen("data.in","r",stdin);freopen("data.out","w",stdout);*/multiset<int>mys;int b[110000];struct Inf{ int h,v;}inf[110000];bool cmp(int a,int b){ return a>b;}bool cmp1(struct Inf a,struct Inf b){ if(a.h!=b.h) return a.h>b.h; return a.v<b.v;}int main(){ int n,m; while(scanf("%d%d",&n,&m)!=EOF) { for(int i=1;i<=n;i++) scanf("%d",&b[i]); sort(b+1,b+n+1,cmp); //把血量从大到小排序 for(int i=1;i<=m;i++) scanf("%d",&inf[i].h); for(int i=1;i<=m;i++) scanf("%d",&inf[i].v); sort(inf+1,inf+m+1,cmp1); mys.clear(); int j=1; ll ans=0; bool flag=true; //for(int i=1;i<=m;i+) for(int i=1;i<=n;i++) { while(j<=m&&inf[j].h>=b[i]) { mys.insert(inf[j].v); j++; } if(mys.empty()) { flag=false; break; } else { ans=ans+*mys.begin(); //printf(":%d\n",*mys.begin()); mys.erase(mys.begin()); //应该把该寄存器的内容删除 } } if(flag) printf("%I64d\n",ans); else printf("No\n"); } return 0;}
- hdu 4544 湫湫系列故事——消灭兔子 贪心+sbt
- hdu 4544 湫湫系列故事——消灭兔子(优先队列 + 贪心)
- hdu 4544 湫湫系列故事——消灭兔子(贪心)
- hdu 4544 湫湫系列故事——消灭兔子(贪心+优先队列)
- hdu 4544 湫湫系列故事——消灭兔子(优先队列+贪心)
- HDU 4544 湫湫系列故事——消灭兔子(优先队列+贪心)
- hdu 4544 湫湫系列故事——消灭兔子, 贪心算法+小顶堆
- hdu 4544 湫湫系列故事——消灭兔子 优先队列+贪心
- hdu-4544-湫湫系列故事——消灭兔子-贪心+stl
- hdu 4544 湫湫系列故事——消灭兔子(贪心,优先队列)
- hdu 4544 湫湫系列故事——消灭兔子 贪心+优先队列 解题报告
- HDU - 4544 湫湫系列故事——消灭兔子 贪心+优先队列
- HDU 4544 湫湫系列故事——消灭兔子 (贪心+优先队列)
- hdu 4544 湫湫系列故事——消灭兔子
- HDU-4544-湫湫系列故事——消灭兔子
- HDU-4544湫湫系列故事——消灭兔子
- hdu 4544 湫湫系列故事——消灭兔子
- HDU 4544 湫湫系列故事——消灭兔子
- Android-- Dialog对话框的使用方法
- opencv---cvSmooth部分源码
- 康托展开及逆运算
- JSP接收数据为空--页面显示为0
- 图像双线性插值
- hdu 4544 湫湫系列故事——消灭兔子 贪心+sbt
- java加载文件问题
- 创建代理用户连接数据库
- vb.net Linq四表查询
- 整理总结
- Loadview理解
- sizeHint() minimumSizeHint() sizePolicy() 的使用
- Hadoop实战-初级部分 之 Hadoop安装部署
- MFC excel读取显示,spreadsheet和basicexcel控件