博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Gym 100247I Meteor Flow(优先队列)
阅读量:5313 次
发布时间:2019-06-14

本文共 982 字,大约阅读时间需要 3 分钟。

题意:

有一艘飞船,现在有n颗流星坠落会攻击到飞船,每颗流星会在t时刻降落,对飞船造成d的伤害,飞船会有一个保护盾,初始值为0,每单位时间会+1,受到伤害后保护盾会减去相应的值。飞船上面还有加农炮,发射后可以避免一颗流星的伤害,问在保护盾不受到破坏的情况下(<0)最少需要发射几次加农炮。

 

思路:

尽量使用加农炮去避免伤害较大的流星。

按照时间顺序将所有流星的伤害值依次放入优先队列,如果到某颗流星时保护盾遭到破坏了,那么就从优先队列中取出之前的伤害最大的流星,此时用加农炮免除它的伤害。

1 #include
2 #include
3 using namespace std; 4 const int maxn = 200000+5; 5 6 int n; 7 8 priority_queue
q; 9 10 int main()11 {12 //freopen("in.txt","r",stdin);13 scanf("%d",&n);14 int pre = 0;15 int ans = 0;16 int defend = 0;17 for(int i=1;i<=n;i++)18 {19 int t,d;20 scanf("%d%d",&t,&d);21 q.push(d);22 defend += t-pre;23 pre = t;24 while(defend < d)25 {26 int tmp = q.top(); q.pop();27 defend += tmp;28 ans++;29 }30 defend -= d;31 }32 printf("%d\n",ans);33 return 0;34 }

 

转载于:https://www.cnblogs.com/zyb993963526/p/8051371.html

你可能感兴趣的文章
pandas 修改指定列中所有内容
查看>>
「 Luogu P2285 」打鼹鼠
查看>>
lua语言入门之Sublime Text设置lua的Build System
查看>>
vue.js基础
查看>>
电脑的自带图标的显示
查看>>
[转载] redis 的两种持久化方式及原理
查看>>
C++ 删除字符串的两种实现方式
查看>>
ORA-01502: 索引'P_ABCD.PK_WEB_BASE'或这类索引的分区处于不可用状态
查看>>
Java抽象类和接口的比较
查看>>
开发进度一
查看>>
MyBaits学习
查看>>
管道,数据共享,进程池
查看>>
CSS
查看>>
[LeetCode] 55. Jump Game_ Medium tag: Dynamic Programming
查看>>
[Cypress] Stub a Post Request for Successful Form Submission with Cypress
查看>>
程序集的混淆及签名
查看>>
判断9X9数组是否是数独的java代码
查看>>
00-自测1. 打印沙漏
查看>>
UNITY在VS中调试
查看>>
SDUTOJ3754_黑白棋(纯模拟)
查看>>