hdu 4544 优先队列+贪心
题意:最近,减肥失败的湫湫为发泄心中郁闷,在玩一个消灭免子的游戏。
游戏规则很简单,用箭杀死免子即可。
箭是一种消耗品,已知有M种不同类型的箭可以选择,并且每种箭都会对兔子造成伤害,对应的伤害值分别为Di(1 <= i <= M),每种箭需要一定的QQ币购买。
假设每种箭只能使用一次,每只免子也只能被射一次,请计算要消灭地图上的所有兔子最少需要的QQ币。
链接:点我
贪心在能杀死某个兔子的箭里选择价格最小的
一开始直接两个for,tle,看了别人代码之后才知道用优先队列
1 #include<cstdio> 2 #include<iostream> 3 #include<algorithm> 4 #include<cstring> 5 #include<cmath> 6 #include<queue> 7 #include<map> 8 using namespace std; 9 #define MOD 1000000007 10 const int INF=0x3f3f3f3f; 11 const double eps=1e-5; 12 #define cl(a) memset(a,0,sizeof(a)) 13 #define ts printf("*****\n"); 14 const int MAXN=100005; 15 int b[MAXN],d[MAXN],p[MAXN]; 16 int n,m,tt; 17 struct node 18 { 19 int d,p; 20 }a[MAXN]; 21 bool cmp1(node a,node b) 22 { 23 return a.d>b.d; 24 } 25 struct cmp 26 { 27 bool operator()(int x,int y) 28 { 29 return x>y; 30 } 31 }; 32 priority_queue<int,vector<int>,cmp > q; 33 bool vis[MAXN]; 34 int main() 35 { 36 int i,j,k; 37 #ifndef ONLINE_JUDGE 38 freopen("1.in","r",stdin); 39 #endif 40 while(scanf("%d%d",&n,&m)!=EOF) 41 { 42 while(!q.empty()) q.pop(); 43 for(i=0;i<n;i++) scanf("%d",&b[i]); 44 for(i=0;i<m;i++) scanf("%d",&a[i].d); 45 for(i=0;i<m;i++) scanf("%d",&a[i].p); 46 sort(b,b+n); 47 sort(a,a+m,cmp1); 48 long long ans=0; 49 bool f=1; 50 int t=0; 51 for(i=n-1;i>=0;i--) 52 { 53 while(t<=m-1&&a[t].d>=b[i]) 54 { 55 q.push(a[t].p); 56 t++; 57 } 58 if(q.empty()) 59 { 60 f=0; 61 break; 62 } 63 ans+=q.top(); 64 q.pop(); 65 } 66 if(!f) printf("No\n"); 67 else printf("%I64d\n",ans); 68 } 69 }
转载于:https://www.cnblogs.com/cnblogs321114287/p/4472922.html
hdu 4544 优先队列+贪心相关推荐
- hdu 4544 优先队列
湫湫系列故事--消灭兔子 Time Limit: 3000/1000 MS (Java/Others) Memory Limit: 65535/32768 K (Java/Others) Tot ...
- HDU 4544 湫湫系列故事——消灭兔子 (贪心+优先队列)
题目链接:HDU 4544 题面: 湫湫系列故事--消灭兔子 Time Limit: 3000/1000 MS (Java/Others) Memory Limit: 65535/32768 K ...
- hdu 4544 湫湫系列故事——消灭兔子
原题: http://acm.hdu.edu.cn/showproblem.php?pid=4544 //hdu 4544 //思路:为每一只兔子找能够杀死自己并且花费Q币最少的箭,关键在于不要超时, ...
- LeetCode 1642. 可以到达的最远建筑(二分查找 / 优先队列贪心)
文章目录 1. 题目 2. 解题 2.1 二分查找 2.2 优先队列+贪心 1. 题目 给你一个整数数组 heights ,表示建筑物的高度.另有一些砖块 bricks 和梯子 ladders . 你 ...
- 【CF 732E】Sockets(优先队列+贪心)
[CF 732E]Sockets(优先队列+贪心) 题目大意: n台电脑,m个供电器. 每台电脑和每个供电器都有电量,当电脑i的电量和供电器j电量相同时,可以连接供电. 现在提供变压器,可以连接到供电 ...
- HDU - 4544 湫湫系列故事——消灭兔子 贪心+优先队列
1.题意: 箭是一种消耗品,已知有M种不同类型的箭可以选择,并且每种箭都会对兔子造成伤害,对应的伤害值分别为Di(1 <= i <= M),每种箭需要一定的QQ币购买. 假设每种箭只能使 ...
- *【HDU - 5711】Ingress(tsp旅行商问题,优先队列贪心,状压dp,floyd最短路,图论)
题干: Brickgao, who profited from your accurate calculating last year, made a great deal of money by m ...
- hdu 5248(二分+贪心)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5248 解题思路:这道题我原本的思路是动态规划,结果看到数很大,结果放弃了.然后想到二分,思路是对的,只 ...
- hdu 5246(贪心)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5246 解题思路:先排序,在采用贪心的方法,先给百小度找到合适的初始战斗力,找到比初始战斗力上限小的中最 ...
最新文章
- 乘风破浪的马里奥!这个AI带你一口气通29关,你猜连AI都过不去的是哪3关?
- Sql Server查询语句的一些小技巧
- 文本处理三剑客之sed
- 深入理解Java的整型类型:如何实现2+2=5?
- 覆盖所有面试知识点,持续更新中
- java 线程 函数_java – 从后台线程调用主线程上的函数
- JS面向对象程序设计(OOP:Object Oriented Programming)
- 使用phpize建立php扩展(Cannot find config.m4)
- java中用流提取文档中的文字,语言实现从word文档中提取文本
- mysql存储过程核销_mysql存储过程
- [vSphere培训实录]8G内存笔记本搭建vSphere测试环境
- 服务器上域名打不开网站,域名打不开网站
- docker容器跨宿主机通信
- Tomcat下JSP环境的配置
- 你有在为大学时选的专业后悔吗?
- Java实现消息队列服务
- wamp5环境配置基础教程
- Java二维数组的错误写法分析
- 搞懂redux一篇就够了
- 热更新你都知道哪些?
热门文章
- micropython实现mpy的ota(有用,推荐)
- VBA破解Excel表格保护密码
- 搜狗微信为什么搜不到服务器,搜狗微信搜索部分功能为什么下线 搜狗微信搜索部分功能将被下线详情介绍...
- 大型API网关(六)—— 监控和预警
- C++实现九九乘法 (by yzs-device)
- 信号之零输入和零状态响应
- python3的numpy包中的numpy.logspace解析
- github语法使用
- android 6.0 Launcher3 去掉抽屉式,显示所有 app
- 企业如何构建内部开发者平台?