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 ...
随机推荐
- MyBatis中的@Mapper注解 @Mappe与@MapperScan关系
从mybatis3.4.0开始加入了@Mapper注解,目的就是为了不再写mapper映射文件 现在项目中的配置 public interface DemoMapper{ int deleteByPr ...
- 15分钟入门lua
目录:[ - ] -- 1. Variables and flow control. -- 2. Functions. -- 3. Tables. -- 3.1 Metatables and meta ...
- Pollywog CodeForces - 917C (状压)
链接 大意: 一共n个格子, 初始$x$只蝌蚪在前$x$个格子, 每次最左侧的蝌蚪向前跳, 跳跃距离在范围[1,k], 并且每只蝌蚪跳跃都有一定花费, 有$q$个格子上有石头, 若有蝌蚪跳到某块石头上 ...
- thinkphp3.2分页
在ThinkPHP 3.1及之前,分页功能可能是放在/Lib/Org/Util中的,到了ThinkPHP 3.2后,分页功能已经整合到了Library/Think中了.而且ThinkPHP 3.2已经 ...
- Nginx 关于 location 的匹配规则详解
有些童鞋的误区 1. location 的匹配顺序是“先匹配正则,再匹配普通”. 矫正: location 的匹配顺序其实是“先匹配普通,再匹配正则”.我这么说,大家一定会反驳我,因为按“先匹配普通, ...
- dns 服务架构优化 - 百万级并发不是梦 - bind+namedmanager+dnsmasq
bind: DNS服务端. namedmanager: DNS web管理页面. dnsmasq: 并发查询上游dns域名解析. 问题:作为消息推送业务,单台业务机器域名解析并发达到上万次.业务机器集 ...
- CachedThreadPool里的线程是如何被回收的?
线程池创建线程的逻辑图: 我们分析CachedThreadPool线程池里的线程是如何被回收的. //Executors public static ExecutorService newCached ...
- consumer发送请求,接收响应
一般情况,consumer发送请求时,创建一个DefaultFuture对象,然后阻塞并等待响应.DefaultFuture类,封装了请求和响应: // 省略其他代码 public class Def ...
- JavaScript学习总结(二)——逻辑Not运算符详解
在JavaScript 中,逻辑NOT运算符与C和Java中的逻辑 NOT 运算符相同,都由感叹号(!)表示.与逻辑 OR 和逻辑 AND 运算符不同的是,逻辑 NOT 运算符返回的一定是 Boole ...
- cnblogs插件jiathis
博客园cnblogs增加分享插件 <!--jiathis button Begin--> <div id="ckepop"> <span class= ...