您的位置:首页 > 其它

自定义优先队列

2015-06-07 14:04 211 查看
#include<stdio.h>
#include<string.h>
#include<queue>
using namespace std;
struct node
{
int place;
int len;
friend bool operator< (node a,node b)
{
if(a.place!=b.place)
return a.place>b.place;
else return a.len>b.len;
}
};
int main()
{
priority_queue<node>q;
priority_queue<node>p;
int i,j,t,n;
node s;
scanf("%d",&t);
while(t--)
{
scanf("%d",&n);
for(i=0;i<n;i++)
{
scanf("%d%d",&s.place,&s.len);
q.push(s);
}
int odd=1;
while(!q.empty())
{
s=q.top();
q.pop();

if(odd)
{
s.place+=s.len;
q.push(s);
}
odd=!odd;
}
printf("%d\n",s.place);
/*    while(scanf("%d",&n)!=EOF)
{
for(i=0;i<n;i++)
{
scanf("%d",&s.place);
p.push(s);
}
while(!p.empty())
{
s=p.top();
p.pop();
printf("%d ",s.place);
}
printf("\n");
}*/
}
}


View Code
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: