Stones 优先队列
There are many stones on the road, when he meet a stone, he will
throw it ahead as far as possible if it is the odd stone he meet, or
leave it where it was if it is the even stone. Now give you some
informations about the stones on the road, you are to tell me the
distance from the start point to the farthest stone after Sempr walk by.
Please pay attention that if two or more stones stay at the same
position, you will meet the larger one(the one with the smallest Di, as
described in the Input) first.
which means the test cases in the input file. Then followed by T test
cases.
For each test case, I will give you an Integer N(0<N<=100,000)
in the first line, which means the number of stones on the road. Then
followed by N lines and there are two integers Pi(0<=Pi<=100,000)
and Di(0<=Di<=1,000) in the line, which means the position of the
i-th stone and how far Sempr can throw it.
OutputJust output one line for one test case, as described in the Description.
Sample Input
2
2
1 5
2 4
2
1 5
6 6
Sample Output
11
12 题意是求从出发点到最后一块石头的距离,遇到奇数石头可以扔,偶数不管,那么就是创建优先队列,扔出去的,按照扔出去以后的位置和原来能扔的距离入队就好了。不停直到队列为空。 代码:
#include <iostream>
#include <cstdio>
#include <cstdlib>
#include <cstring>
#include <queue> using namespace std; struct stone
{
int loc,dis;
friend bool operator <(stone a,stone b)
{
if(a.loc==b.loc)return a.dis>b.dis;
return a.loc>b.loc;
}
}temp,cn;
int main()
{
int T,n,p,d,loca=,c=,maxi=;
priority_queue <stone>q;
scanf("%d",&T);
while(T--)
{
loca=c=maxi=;
scanf("%d",&n);
for(int i=;i<n;i++)
{
scanf("%d%d",&p,&d);
temp.loc=p,temp.dis=d;
q.push(temp);
}
while(!q.empty())
{
c++;
cn=q.top();
q.pop();
if(loca<cn.loc)loca=cn.loc;
if(c%==)
{
temp.loc=loca+cn.dis;
if(maxi<temp.loc)maxi=temp.loc;
temp.dis=cn.dis;
q.push(temp);
}
}
printf("%d\n",maxi>loca?maxi:loca);
}
}
Stones 优先队列的更多相关文章
- E - Stones 优先队列
来源1896 Because of the wrong status of the bicycle, Sempr begin to walk east to west every morning an ...
- Hdu1896 Stones(优先队列) 2017-01-17 13:07 40人阅读 评论(0) 收藏
Stones Time Limit : 5000/3000ms (Java/Other) Memory Limit : 65535/32768K (Java/Other) Total Submis ...
- HDU 1896 Stones (优先队列)
Problem Description Because of the wrong status of the bicycle, Sempr begin to walk east to west eve ...
- HDU 1896 Stones --优先队列+搜索
一直向前搜..做法有点像模拟.但是要用到出队入队,有点像搜索. 代码: #include <iostream> #include <cstdio> #include <c ...
- Stones(优先队列)
Stones Time Limit: 5000/3000 MS (Java/Others) Memory Limit: 65535/32768 K (Java/Others)Total Subm ...
- HDU 1896:Stones(优先队列)
Stones Time Limit: 5000/3000 MS (Java/Others) Memory Limit: 65535/32768 K (Java/Others) Total Sub ...
- hdoj 1896 Stones【优先队列】
Stones Time Limit: 5000/3000 MS (Java/Others) Memory Limit: 65535/32768 K (Java/Others)Total Subm ...
- HDU 1896 Stones(优先队列)
还是优先队列 #include<iostream> #include<cstdio> #include<cstring> #include<queue> ...
- HDU 1896 Stones (优先队列)
Stones Time Limit: 5000/3000 MS (Java/Others) Memory Limit: 65535/32768 K (Java/Others)Total Subm ...
随机推荐
- 2018年全国多校算法寒假训练营练习比赛(第一场)G 圆圈
https://www.nowcoder.com/acm/contest/67/G 思路: 分形. 记录中间左边点的坐标,然后推出另外3个点的坐标,递归到最简单的情况. 代码: #include< ...
- 610D - Vika and Segments(线段树+扫描线+离散化)
扫描线:http://www.cnblogs.com/scau20110726/archive/2013/04/12/3016765.html 看图,图中的数字是横坐标离散后对应的下标,计算时左端点不 ...
- NGUI 中,长技能图标显示技能Tips的核心代码
需要将技能图标对应的位置Pos赋给Tips即可.下面是计算 Pos 的核心代码: using UnityEngine; public class LgsTest : MonoBehaviour { [ ...
- Linq 使用skip和take分页
static int Main(string[] args) { //每页条数 const int pageSize = 2; //页码 0就是第一条数据 int pageNum = 0; strin ...
- Python的url解析库--urlparse
一.urlparse解析url的query并构建字典 下面的方法主要的功能: 解析url的各个部分,并能够获取url的query部分,并把query部分构建成dict. 具体的代码实现: >&g ...
- 用MVVM模式开发中遇到的零散问题总结(1)
https://www.cnblogs.com/tong-tong/archive/2011/11/28/2250948.html
- laravel command
(1) 新建一个command类,并在command类里面写相应的执行函数 其中变量act就是指函数名,handle里面会先判断该函数是不是存在,如果存在就执行,如果不存在就提示函数不存在 class ...
- The requested URL /phpmyadmin was not found on this server.
这个报错,我弄了好久,第一次我以为我安装有问题,我就卸载重新安装了,但是在结果还是报这样子的错. 查找phpmyadmin的安装位置输入: sudo dpkg -L phpmyadmin 可以看到很多 ...
- UVA-10318 Security Panel (DFS+剪枝)
题目大意:求将一个r*c的按钮矩阵由全部为关变成全部为开的最少按扭次数,每按一次开关能作用到的范围不定. 题目分析:开关问题.打眼一看就是BFS+位压缩,但是写出来之后TLE.用DFS不断更新最优解. ...
- @Component、@Service、@Constroller
@Component.@Service.@Constroller,@Repository,它们分别用于软件系统的不同层次: @Component 是一个泛化的概念,仅仅表示一个组件 (Bean) ,可 ...