Uva12100 Printer Queue 【queue+sort】【习题5-7】
来源:互联网 发布:云计算项目 编辑:程序博客网 时间:2024/06/06 05:43
题目:Printer Queue
题意:排队等待打印,优先级高的直接插队打印,队首的那个插入队尾继续等待,问第m位置的那个人打印需要多长时间?每个人打印需要1分钟;
思路:(1)用结构体将每个人的位置和优先级存放,然后依次入队
(2)将每个人的优先级按递减排序
(3)遍历优先级数组,判断队首是否符合当前优先级,符合出队,不符合插入队尾,直到出现m位置的那个人时跳出即可!
代码:
#include <iostream>#include <queue>#include <map>#include <algorithm>using namespace std;struct node{ int position,grade;};queue<node>Q;bool cmp(int a,int b){ return a > b;}int main(){ int t,n,m,a[105]; cin >> t; while(t--) { while(!Q.empty()) Q.pop(); cin >> n >> m; node temp; for(int i=0;i<n;i++) { cin >> a[i]; temp.position = i; temp.grade = a[i]; Q.push(temp); } sort(a,a+n,cmp); int cot = 0; for(int i=0;i<n;i++) { cot++; temp = Q.front(); while(temp.grade < a[i])//判断当前优先级 { Q.pop();//出队 Q.push(temp);//插入队尾继续等待 temp = Q.front(); } Q.pop(); if(temp.position == m) break; } cout << cot <<endl; } return 0;}
0 0
- Uva12100 Printer Queue 【queue+sort】【习题5-7】
- 习题5-7 打印队列(Printer Queue, UVa12100)
- 算法竞赛入门经典 第二版 习题5-7 打印队列 Printer Queue uva12100
- UVa12100 - Printer Queue
- UVA12100 - Printer Queue
- UVa12100 Printer Queue
- UVA12100 Printer Queue
- UVa12100 Printer Queue (打印队列)
- UVA12100:Printer Queue(打印队列)
- UVa 12100 Printer Queue(习题5-7)
- [刷题]算法竞赛入门经典(第2版) 5-7/UVa12100 - Printer Queue
- UVA12100 Printer Queue 【双端队列】
- uva12100 Printer Queue (队列模拟, 据说是优先队列,错了)
- UVALive3638 UVA12100 POJ3125 HDU1972 Printer Queue【队列+模拟】
- Printer Queue
- Printer Queue
- Printer Queue
- Printer Queue
- Unity3D在IOS、Android上使用C++并回调的究极解决方案
- 超经典的单例讲解
- 线段树入门单节点更新区间求最大值hdu1754
- 基于PT2262/PT2272的4路遥控电路
- Android百度定位
- Uva12100 Printer Queue 【queue+sort】【习题5-7】
- 同步与异步和阻塞与非阻塞
- SSM框架 之 Spring-IOC
- 理解JAVA的Semaphore信号量
- spring注解(二)
- HDU5584 证明题..
- 栈
- 洛谷P1896 互不侵犯king
- 在 RHEL、CentOS 和 Fedora 上安装 Git 及设置 Git 账号的技巧