UVA12100:Printer Queue(打印队列)
2017-02-02 17:04
369 查看
作者:xq的acm之路
题目链接:https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=3252
题目大意:现在有一个打印队列,里面的任务是无序的,每个任务有一个优先级,打印机会从第一个任务开始执行,如果当前任务的优先级是队列中最大的,那么就打印,否则就将该任务放置到队末。每次打印消耗一分钟的时间,求该序列中的任务分别在什么时候被打印。
思路:队列模拟就行,注意结束的条件。
代码如下:
题目链接:https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=3252
题目大意:现在有一个打印队列,里面的任务是无序的,每个任务有一个优先级,打印机会从第一个任务开始执行,如果当前任务的优先级是队列中最大的,那么就打印,否则就将该任务放置到队末。每次打印消耗一分钟的时间,求该序列中的任务分别在什么时候被打印。
思路:队列模拟就行,注意结束的条件。
代码如下:
#include <iostream> #include <queue> #include <algorithm> #include <vector> using namespace std; queue<int>q; int main() { int n; int b[1010]; cin>>n; while(n--) { int t,k,l; cin>>t>>k; for(int i=0;i<t;i++) { cin>>l; q.push(l); b[i]=l; } sort(b,b+t); int zhi=k,flag=t-1,ans=1; //zhi就是指向队列的指针 while(1) { if(zhi<0) zhi=q.size()-1; if(q.front()==b[flag]) { if(zhi==0) break; q.pop(); ans++; flag--; zhi--; } else { zhi--; int m=q.front(); q.pop(); q.push(m); } } cout<<ans<<endl; while(!q.empty()) //一定不要忘记把队列清空!!! b6f6 q.pop(); } return 0; }
相关文章推荐
- 习题5-7 打印队列(Printer Queue, UVa12100)
- Printer Queue 打印队列 UVA 12100
- UVA12100 Printer Queue
- 算法竞赛入门经典(第2版)习题5-7 打印队列 UVa12100
- UVa 12100 打印队列
- 关于“打印队列 Printer Queue, ACM/ICPC NWERC 2006, UVa 12100)"的讨论
- UVa 12100打印队列(队列)
- 5-7 UVA 12100 Printer Queue打印队列
- uva 12100 Printer Queue 习题5-7 打印队列 (STL deque练习)
- Printer Queue打印队列
- 习题5-7 打印队列 UVa12100
- Printer Queue UVA - 12100
- winform 水晶报表 更改 打印队列 中的 文档名 (Set Crystal Reports Document Name In Printer Queue)
- uva 12100 Printer Queue(打印队列)模拟
- winform 水晶报表 更改 打印队列 中的 文档名 (Set Crystal Reports Document Name In Printer Queue)
- UVA12100-打印队列
- UVa - 540 - Team Queue(STL - 队列queue)
- UVA ~ 12100 ~ Printer Queue (队列 + 优先队列)
- 紫书章五例题六 团队队列 uva 540(queue)
- UVa - 136 - Ugly Numbers(STL - 优先队列priority_queue)