hdu 1873 优先级队列
2013-05-13 11:38
281 查看
只是多了一个优先级队列数组而已,相当于裸的优先级队列
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1873
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1873
#include <iostream> #include <cstdio> #include <cstdlib> #include <cstring> #include <algorithm> #include <cmath> #include<queue> using namespace std; struct node { int pri,no;//no为node进入先后编号顺序 bool operator <(const node t)const { if(pri==t.pri) return no > t.no; //从小到大,小的优先级最高 else return pri < t.pri; //从大到小,大的优先级最高 } }; priority_queue<node>Q[3]; /*也可以这样定义 struct cmp//用结构体作为比较函数 { bool operator ()(mes a,mes b) { if (a.pri != b.pri) return a.pri > b.pri;//这里如果是大于,则得出来的队列是从小到大 else return a.o > b.o;//同上述 } }; priority_queue<mes,vector<mes>,cmp> Q; */ int main() { freopen("in.txt", "r", stdin); //freopen("out.txt", "w", stdout); int i,n; node a; char order[10]; while(cin>>n) { for(i=0;i<3;i++) while(!Q[i].empty()) Q[i].pop();//初始化 int j,k=0;//记录编号 for(i=0;i<n;i++) { cin>>order; if(strcmp(order,"IN")==0) { cin>>j>>a.pri; k++; a.no=k; Q[j-1].push(a); } else { cin>>j; if(Q[j-1].empty()) cout<<"EMPTY"<<endl; else { cout<<Q[j-1].top().no<<endl; Q[j-1].pop(); } } } } return 0; }
相关文章推荐
- hduProblem-1873优先级队列的应用
- hdu 1873 看病要排队(优先级队列)
- 【优先队列】HDU 1873——看病找医生
- hdu 1873 看病要排队 - 优先队列W
- HDU 4006 The kth great number 堆/优先级队列/线段树
- hdu 1873 自定义优先队列
- hdu 1026 bfs+优先级队列
- HDU 1873 看病要排队 优先队列
- [HDU](4857)逃生 ---拓扑排序(反向)+STL优先级队列(图)
- HDU 1242 rescue and 优先级队列的条目
- HDU-1873-看病要排队【优先队列】
- hdu 1873 优先队列 priority_queue
- 【优先队列】【priority_queue】【getline】【istringstream】hdu 1873
- hdu 1873 优先队列题
- HDU 1873 看病要排队 优先队列
- hdu 1053 哈夫曼树 优先级队列
- HDU 1873 看病要排队 【优先队列】
- [HDU](1285)确定比赛名次 ---拓扑排序+STL优先级队列(图)
- hdu 4006 The kth great number 优先级队列
- HDU-1873 看病要排队(队列模拟)