HDU 1509 -- Windows Message Queue(优先队列)
2015-01-10 00:24
495 查看
题目大意:只有一组输入数据,每一行有一个请求组"GET" 或者 "PUT",当是”GET“时代表输出一条信息,包括信息的名字和它对应的参数,当是”PUT“时代表输入一条信息,输入信息的名字,参数及优先级;输出时的顺序判断方式是,当两个信息的优先级不同时,优先级小的先输出,如果两个信息的优先级相同,则按照他们进入队列的时间先后输出;
一个小顶堆优先队列的模板题。
代码实现:
一个小顶堆优先队列的模板题。
代码实现:
#include<cstdio> #include<queue> using namespace std; struct Node{ int num; int p; int order; char name[50]; Node(int a=0,int b=0,int c=0):num(a),p(b),order(c){} }; bool operator<(Node a,Node b){ if(a.p==b.p) return a.order>b.order; return a.p>b.p; } int main(){ char s[5]; Node ss; priority_queue<Node>q; int cnt=0; while(~scanf("%s",s)){ if(s[0]=='P'){ cnt++; scanf("%s%d%d",&ss.name,&ss.num,&ss.p); ss.order=cnt; q.push(ss); } if(s[0]=='G'){ if(!q.empty()){ ss=q.top(); q.pop(); printf("%s %d\n",ss.name,ss.num); } else printf("EMPTY QUEUE!\n"); } } }
相关文章推荐
- HDU 1509 Windows Message Queue(优先队列)
- HDU 1509 Windows Message Queue (优先队列)
- hdu-1509 Windows Message Queue(优先队列)
- HDU 1509 Windows Message Queue(优先队列)
- HDU 1509 Windows Message Queue(优先队列)
- hdu 1509 Windows Message Queue(优先队列)
- hdu 1509 Windows Message Queue (优先队列)
- ZOJ 2724/HDU 1509 Windows Message Queue(优先队列)
- hdu 1509 Windows Message Queue 优先队列
- HDU 1509 Windows Message Queue(优先队列)
- hdu 1509 Windows Message Queue (简单STL的优先队列应用)
- HDU-1509-Windows Message Queue(优先队列)
- hdu 1509 Windows Message Queue (优先队列)
- hdu 1509 Windows Message Queue(优先队列)
- hdu 1509 Windows Message Queue
- hdu 杭电1509 Windows Message Queue【优先队列】
- HDU 1509 Windows Message Queue
- hdu 1509 Windows Message Queue
- HDU 1509 Windows Message Queue
- 【许久不见的STL和优先队列君】HDU1509——Windows Message Queue