GYM 100247 I. Meteor Flow(贪心)
来源:互联网 发布:php 自动化部署 编辑:程序博客网 时间:2024/06/06 13:04
Description
飞船有一个防护罩,初始耐久度为0,每秒加一单位,给出n次导弹攻击,第i次攻击在第t[i]秒,攻击力d[i],如果防护罩耐久不小于导弹的攻击力则飞船没事,但防护罩耐久会掉d[i],否则gg,但是飞船上有炮,每炮可以毁掉任意导弹,问最少需要多少炮飞船不gg
Input
第一行一整数n表示导弹数量,之后n行每行两个整数t[i],d[i]表示该次攻击的时间和导弹的攻击力,保证t非减
(1<=n<=200000,1<=t[i],d[i]<=1e9)
Output
输出保证飞船安全的情况下大的最少炮数
Sample Input
3
3 2
5 4
6 3
Sample Output
1
Solution
贪心,当前累加伤害值不大于飞船耐久继续往下扫,否则不停拿出之前所有攻击中伤害值最大的用炮打,所以用一个优先队列来维护伤害即可
Code
#include<cstdio>#include<iostream>#include<cstring>#include<algorithm>#include<cmath>#include<vector>#include<queue>#include<map>#include<set>#include<ctime>using namespace std;typedef long long ll;#define INF 0x3f3f3f3f#define maxn 222222int n,t[maxn],d[maxn];priority_queue<int>que;int main(){ while(~scanf("%d",&n)) { while(!que.empty())que.pop(); for(int i=1;i<=n;i++)scanf("%d%d",&t[i],&d[i]); ll sum=0; int ans=0; for(int i=1;i<=n;i++) { que.push(d[i]),sum+=d[i]; while(i<n&&t[i+1]==t[i])i++,que.push(d[i]),sum+=d[i]; while(sum>t[i]&&!que.empty()) { int now=que.top(); que.pop(); sum-=now; ans++; } } printf("%d\n",ans); } return 0;}
0 0
- GYM 100247 I. Meteor Flow(贪心)
- GYM 100030 I.Prohibition(贪心)
- GYM 100090 I.Retakes(贪心+优先队列)
- uva 1398 - Meteor(贪心)
- GYM 100247 H. Secret Information(贪心)
- UVALive 7960|Gym 101201I|Postman|贪心
- Gym 100803A(贪心)
- Gym 100886J Sockets(二分+贪心)
- GYM 100030 G.Procrastination(贪心)
- GYM 100712 C.Street Lamps(贪心)
- GYM 101149 J.Panoramic Photography(贪心)
- GYM 101173 F.Free Figurines(贪心)
- GYM 100971 L.Chess Match(贪心)
- GYM 100694 J.Ticket Booking(贪心)
- Gym 100942I Manhattan Project (set)
- GYM 100488 I.Map Coloring(水~)
- GYM 100883 I.Teleportia(Floyd)
- GYM 101102 I.Simple Robot(水~)
- java自动装箱之Integer
- 使用IntelliJ IDEA开发SpringMVC网站(四)用户管理
- 205. Isomorphic Strings | 判断两个字符串形式是否相同
- 关于自动化部署平台的尝试
- 什么是多线程和多进程【转】
- GYM 100247 I. Meteor Flow(贪心)
- HDU2883kebab(离散化+最大流_任务分配)
- 获取当前时间和星期
- 数据库30条军规解读
- 参数文件GinsengSharedPerferences
- 音视频同步、网络抖动
- 深度学习主机环境配置: Ubuntu16.04+Nvidia GTX 1080+CUDA8.0
- window.location.reload();页面实现跳转和刷新
- js中关于url中的参数判断