码迷,mamicode.com
首页 > 其他好文 > 详细

hdu 1896 stones

时间:2015-04-22 15:22:06      阅读:140      评论:0      收藏:0      [点我收藏+]

标签:

题意:sempr走在路上会遇见一些石头,如果遇见第奇数个石子,则将它扔到前面,如果是偶数,则什么也不做,如果某一个位置上有多个石头,则先遇见扔的比较近的那个,现在给出一些石头的初始位置和能够扔的距离,问到最后最远处的石头离初始位置多远!

简单的优先队列

#include<iostream>
#include<queue>
#include<algorithm>
using namespace std;
int n;
struct stu
{
	int position,l;
	friend bool operator<(stu x,stu y)
	{
		if(x.position==y.position) return x.l>y.l;
		return x.position>y.position;
	}
};
stu x,y;
int main()
{
	int t;
	cin>>t;
	while(t--)
	{
		cin>>n;
		priority_queue<stu>mapp;
		while(n--)
		{
			cin>>x.position>>x.l;
			mapp.push(x); 
		}
		int sum=0;
		while(mapp.size())
		{
			x=mapp.top();
			mapp.pop();
			sum++;
			if(sum%2==0&&!mapp.size()){cout<<x.position<<endl;break;}
			if(sum%2==0){continue;}
			x.position+=x.l;
			mapp.push(x); 
		}
	}
	return 0;
}


hdu 1896 stones

标签:

原文地址:http://blog.csdn.net/zafkiel_nightmare/article/details/45194341

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!