LZY踢石头(优先队列)
题目描述
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踢石头(优先队列)相关推荐
- upc 个人训练赛第一场:叠罗汉+踢石头(贪心+优先队列)
问题 A: 打印方阵 题目描述 下面这样的方阵很有规律,称为蛇形方阵.例如33的: 1 2 3 6 5 4 7 8 9 现在给定边长,输出相应的蛇形方阵. 输入 1个整数n,表示要输出nn的蛇形方阵, ...
- LZY碎大石(YYOJ)(优先队列
题目描述 由于LZY半夜3点50分吵醒了营长,营长很生气,让他去工地体验一下搬砖生活.包工头给了LZY一个任务,他给了LZY一大堆石头,让LZY每次挑出两块最重的石头,然后将它们一起粉碎. 假设石头的 ...
- Some Tips in Life
How to Find Digital Books 1.http://so.baiduyun.me/ 百度云搜索 2.http://www.zhaofile.com/ 找文件 3.http://www ...
- LintCode 1677. 石头(自定义优先队列)
1. 题目 给定数组 p 代表 n 个石头的位置和数组 d 代表这 n 块石头能够扔的距离. 从左(0位置)往右走.当你第 k 次碰到一个石头时, 如果 k 是奇数, 把这个石头往右扔: 如果 k 是 ...
- LeetCode 1046. 最后一块石头的重量(priority_queue 堆)
1. 题目 有一堆石头,每块石头的重量都是正整数. 每一回合,从中选出两块最重的石头,然后将它们一起粉碎.假设石头的重量分别为 x 和 y,且 x <= y.那么粉碎的可能结果如下: 如果 x ...
- 贪心+优先队列之更改优先级-hdu1896
题目描述: 题目理解: Sempr从位置0往前走,一路上他会遇到石子,如果这颗石子是他遇到的第奇数颗石子,那么他就把石子往前扔出去,如果他遇到的是第偶数颗石子,他会把它留在原地.需要注意的是,Semp ...
- Safe Or Unsafe(hdu2527)哈弗曼VS优先队列
Safe Or Unsafe Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) T ...
- HDU1434 幸福列车【模拟+优先队列】
幸福列车 Time Limit: 20000/10000 MS (Java/Others) Memory Limit: 131070/65535 K (Java/Others) Total Su ...
- Lintcode 1667.石头
题目大意:一条直线上有n个石头,一个人从左往右走,碰到奇数块石头(碰到一块石头数一个数,这里指数的数是奇数),就往右扔,碰到偶数的石头就不管他,如果两块石头在同一个位置,就扔大的那块(能扔的距离小的) ...
最新文章
- Dissecting BERT Part 1: The Encoder 解析BERT解码器(transformer)
- 我的android studio开发环境搭建历程(一部辛酸史)
- 远程安装oracle 10.2.1 for redhat 5.0 2.6.18-53.el5xen【转】
- 实现ModelDriver接口的功能(转)
- CTF-MISC杂项题1
- Linux命令之乐--sed
- 用 Python 写一个 NoSQL 数据库
- Leetcode之路径总和II
- Qt 批量替换指定文本为目标文本
- 哪些植物最吸毒?这份植物“吸毒”手册千万要收好!
- 多目标跟踪算法FairMOT
- iOS面试--最新快手iOS面试题
- 基于PHP+mysql的学生管理系统班级网站同学录
- 零知识证明 Zero Knowledge Proof 以及 Layer2、跨链介绍
- nacos运行报jar的错Failed to get nested archive for entry BOOT-INF/lib/XXX.jar
- 戴尔易安信引领科技创新,以全面的端到端解决方案助力企业“数”造未来
- 一切恍如昨日,却又截然不同...
- 【项目分享】基于AB32和RT-Thread的墨水屏智能日历
- 使用友盟社会化分享IOS版SDK分享纯图片到微信
- k8s部署java应用
热门文章
- 【NOIP2012】国王游戏
- java 自旋_java自旋锁的代码实现
- chm打开秒退_Mac_Mac电脑程序无响应怎么办?Mac程序无响应解决方法,虽然Mac电脑一向以运行稳定、 - phpStudy...
- 2008、2012、2013海康威视嵌入式校招笔试整理
- Postman使用xmysql连接数据库及Handshake inactivity timeout、PROTOCOL SEQUENCE TIMEOUT问题解决
- android 播放提示音,[转载]android播放音效例子 (翻页音效、警报音效通用
- MYSQL 修改语句(数据)
- 推荐学习-数据结构与算法之美
- 怎么做二维码更简单?这款二维码生成器了解一下
- MATLAB绘图基础01—复杂网络工具箱命令