hdu 1059 优先级队列
2013-05-13 11:09
309 查看
裸的优先级队列,参考了一下他人的代码
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1509
原帖地址:http://yomean.blog.163.com/blog/static/189420225201110811454386/?COLLCC=2615871725&COLLCC=2615871724&
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1509
原帖地址:http://yomean.blog.163.com/blog/static/189420225201110811454386/?COLLCC=2615871725&COLLCC=2615871724&
#include <iostream> #include <cstdio> #include <cstdlib> #include <cstring> #include <algorithm> #include <cmath> #include<queue> using namespace std; struct mes { int pri,no,val;//no为mes进入先后编号顺序 char name[20]; bool operator <(const mes t)const { if(pri==t.pri) return no > t.no; else return pri > t.pri; //从小到大,小的优先级最高 } }; priority_queue<mes>Q; /*也可以这样定义,那个帖子的作者就是这样用的 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); char order[20]; mes a; int k=0;//记录编号 while(!Q.empty()) Q.pop(); while(cin>>order) { if(strcmp(order,"PUT")==0) { cin>>a.name>>a.val>>a.pri; k++; a.no=k; Q.push(a); } else { if(Q.empty()) cout<<"EMPTY QUEUE!"<<endl; else { cout<<Q.top().name<<" "<<Q.top().val<<endl; Q.pop(); } } } return 0; }
相关文章推荐
- hdu 1873 优先级队列
- [HDU](4857)逃生 ---拓扑排序(反向)+STL优先级队列(图)
- HDU 4006 The kth great number 堆/优先级队列/线段树
- hdu 1896 优先级队列
- hdu 1873 看病要排队(优先级队列)
- hdu 1026 bfs+优先级队列
- (hdu step 8.1.5)看病要排队(优先队列的基本使用——在看病排队时,优先级高的排在前面.求在这种情况下的出队序列)
- [HDU](1285)确定比赛名次 ---拓扑排序+STL优先级队列(图)
- HDU-1026-优先级队列
- hduProblem-1873优先级队列的应用
- hdu 4006 The kth great number 优先级队列
- hdu 1053 哈夫曼树 优先级队列
- hdu1871(优先级队列)
- HDU 1242 rescue and 优先级队列的条目
- hdu 1242 优先级队列 bfs
- 2617: 火热的房地产(使用优先级队列,STL库)
- HDU 1059 Dividing(多重背包)
- HDU 1387 Team Queue 队列的模拟
- HDU 1059 Dividing (多重背包二进制优化)
- hdu 杭电1896 Stones【优先队列】