题目描述
LZY自从骑电动车摔了,从此对道路上的障碍物非常痛恨。LZY只要在马路上走,看到石头就想踢走,但是他有一个癖好,只踢他遇见的奇数块的石头,如果遇见的石头是偶数块的,他就会视而不见。
每块石头有它的初始坐标和它能被LZY踢飞的最大距离,如果同一个坐标上有多块石头,则LZY优先处理能被他踢飞的距离最近的石头。请问LZY在无石头可踢时,经过的距离为多少?
输入
输入样例由多组数据组成。每组数据第一行输入一个正整数n ( 0 < n <= 100000 )代表马路上石头的数量。
接下来n行分别输入两个正整数 a ( 0 < a <= 100000 )和 b ( 0 < b <= 1000 ),分别代表石头当前的坐标和石头能被LZY踢飞的最大距离。
输出
输出LZY无石头可踢时,LZY走过的距离
样例输入 Copy
2
1 5
2 4
2
1 5
6 6
样例输出 Copy
11
12
提示
对于第一组数据,LZY先踢飞了坐标在1上的石头,石头飞行了5个单位的距离,坐标变为了6。然后LZY忽略了坐标为2的石头,因为这是他遇见的偶数块石头。接着LZY把坐标为6的石头踢飞了,达到了11。接下来LZY只会在坐标11的位置碰见这块石头,由于是偶数次,所以忽略。LZY无石头可踢,所以输出距离为11。

#include<bits/stdc++.h>
using namespace std;
struct s{int x;int y;
};
struct q1{bool operator()(s n, s m){if(n.x!=m.x) return n.x>m.x;else return n.y>m.y;//这里我们先按 他的位置从小到大排序,如果位置一样的话我们按 踢的最大来排序从小到大排序 ,为什么呢因为不然可能 偶数的不踢 先把最大的给淘汰了 所以要从小到大来排序}
};
int main(){int n;priority_queue<s,vector<s>,q1>q;while(~scanf("%d",&n)){  while(!q.empty()){q.pop();//一定要保证队列里面是空的;}for(int i=1;i<=n;i++){int x,y;scanf("%d%d",&x,&y);q.push({x,y});}int cnt=0,_max=0;while(!q.empty()){cnt++;int x=q.top().x;int y=q.top().y;q.pop();//记得每次要pop,不然跳不出去了if(cnt%2!=0) q.push({x+y,y});//因为LZY只喜欢踢奇数的石头 所以只有在奇数的时候 才加入队列;if(cnt%2!=0)_max=max(_max,x+y);这边也也一样只有奇数的时候才计算他的最大值;}cout<<_max<<endl;}return 0;
}

LZY踢石头(优先队列)相关推荐

  1. upc 个人训练赛第一场:叠罗汉+踢石头(贪心+优先队列)

    问题 A: 打印方阵 题目描述 下面这样的方阵很有规律,称为蛇形方阵.例如33的: 1 2 3 6 5 4 7 8 9 现在给定边长,输出相应的蛇形方阵. 输入 1个整数n,表示要输出nn的蛇形方阵, ...

  2. LZY碎大石(YYOJ)(优先队列

    题目描述 由于LZY半夜3点50分吵醒了营长,营长很生气,让他去工地体验一下搬砖生活.包工头给了LZY一个任务,他给了LZY一大堆石头,让LZY每次挑出两块最重的石头,然后将它们一起粉碎. 假设石头的 ...

  3. Some Tips in Life

    How to Find Digital Books 1.http://so.baiduyun.me/ 百度云搜索 2.http://www.zhaofile.com/ 找文件 3.http://www ...

  4. LintCode 1677. 石头(自定义优先队列)

    1. 题目 给定数组 p 代表 n 个石头的位置和数组 d 代表这 n 块石头能够扔的距离. 从左(0位置)往右走.当你第 k 次碰到一个石头时, 如果 k 是奇数, 把这个石头往右扔: 如果 k 是 ...

  5. LeetCode 1046. 最后一块石头的重量(priority_queue 堆)

    1. 题目 有一堆石头,每块石头的重量都是正整数. 每一回合,从中选出两块最重的石头,然后将它们一起粉碎.假设石头的重量分别为 x 和 y,且 x <= y.那么粉碎的可能结果如下: 如果 x ...

  6. 贪心+优先队列之更改优先级-hdu1896

    题目描述: 题目理解: Sempr从位置0往前走,一路上他会遇到石子,如果这颗石子是他遇到的第奇数颗石子,那么他就把石子往前扔出去,如果他遇到的是第偶数颗石子,他会把它留在原地.需要注意的是,Semp ...

  7. Safe Or Unsafe(hdu2527)哈弗曼VS优先队列

    Safe Or Unsafe Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) T ...

  8. HDU1434 幸福列车【模拟+优先队列】

    幸福列车 Time Limit: 20000/10000 MS (Java/Others)    Memory Limit: 131070/65535 K (Java/Others) Total Su ...

  9. Lintcode 1667.石头

    题目大意:一条直线上有n个石头,一个人从左往右走,碰到奇数块石头(碰到一块石头数一个数,这里指数的数是奇数),就往右扔,碰到偶数的石头就不管他,如果两块石头在同一个位置,就扔大的那块(能扔的距离小的) ...

最新文章

  1. Dissecting BERT Part 1: The Encoder 解析BERT解码器(transformer)
  2. 我的android studio开发环境搭建历程(一部辛酸史)
  3. 远程安装oracle 10.2.1 for redhat 5.0 2.6.18-53.el5xen【转】
  4. 实现ModelDriver接口的功能(转)
  5. CTF-MISC杂项题1
  6. Linux命令之乐--sed
  7. 用 Python 写一个 NoSQL 数据库
  8. Leetcode之路径总和II
  9. Qt 批量替换指定文本为目标文本
  10. 哪些植物最吸毒?这份植物“吸毒”手册千万要收好!
  11. 多目标跟踪算法FairMOT
  12. iOS面试--最新快手iOS面试题
  13. 基于PHP+mysql的学生管理系统班级网站同学录
  14. 零知识证明 Zero Knowledge Proof 以及 Layer2、跨链介绍
  15. nacos运行报jar的错Failed to get nested archive for entry BOOT-INF/lib/XXX.jar
  16. 戴尔易安信引领科技创新,以全面的端到端解决方案助力企业“数”造未来
  17. 一切恍如昨日,却又截然不同...
  18. 【项目分享】基于AB32和RT-Thread的墨水屏智能日历
  19. 使用友盟社会化分享IOS版SDK分享纯图片到微信
  20. k8s部署java应用

热门文章

  1. 【NOIP2012】国王游戏
  2. java 自旋_java自旋锁的代码实现
  3. chm打开秒退_Mac_Mac电脑程序无响应怎么办?Mac程序无响应解决方法,虽然Mac电脑一向以运行稳定、 - phpStudy...
  4. 2008、2012、2013海康威视嵌入式校招笔试整理
  5. Postman使用xmysql连接数据库及Handshake inactivity timeout、PROTOCOL SEQUENCE TIMEOUT问题解决
  6. android 播放提示音,[转载]android播放音效例子 (翻页音效、警报音效通用
  7. MYSQL 修改语句(数据)
  8. 推荐学习-数据结构与算法之美
  9. 怎么做二维码更简单?这款二维码生成器了解一下
  10. MATLAB绘图基础01—复杂网络工具箱命令