本文主要是介绍HDU1509题Windows Message Queue(优先队列),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
题目链接~~>
本题纯优先队列:注意输出时如果两个优先级相同输出先输入的。
代码:
#include<stdio.h>
#include<string.h>
#include<queue>
using namespace std;
struct zhang
{char str[100];int x,y,h;friend bool operator<(const zhang &a,const zhang &b){if(a.x!=b.x)return a.x > b.x ;elsereturn a.h > b.h;}};
int main()
{char s[10];int f=0;priority_queue<zhang>q;zhang current;while(scanf("%s",s)!=EOF){if(strcmp(s,"GET")==0){if(q.empty()){printf("EMPTY QUEUE!\n");}else {current=q.top();printf("%s %d\n",current.str,current.y);q.pop();}}else {scanf("%s%d%d",current.str,¤t.y,¤t.x);current.h=f++;q.push(current);}}return 0;
}
这篇关于HDU1509题Windows Message Queue(优先队列)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!