5-7 UVA 12100 Printer Queue打印队列
来源:互联网 发布:襄阳seo云优化 编辑:程序博客网 时间:2024/05/18 02:29
大致题意:
输入一定数量的打印任务,并伴随有优先级,按优先级从大到小的顺序打印,从队首(位置为0)开始打印,发现队后存在一个打印任务的优先级高于自己,则自己放于队后,先打印优先级高的。
整体思路:
不用想,根据题意,存数据(优先级)用肯定用queue存(当然有很多方法,这是最好想的!),但queue不能根据优先级进行排序,所以要在找一个"容器"能存的数据自动排序,优先队列priority_queue最好好(set对于队首和队尾的操作不如queue好!),所以在把优先级存入第一个queue的同时,也把优先级存到优先队列中,让优先队列里面的数据,优先级根据整数大小进行排序,一个一个对比,不一样的话 ,直接放到队尾,否则打印,sum++。
有个技巧,用m来记录标记位置的动态取向,直到输出标记位置时,跳出循环输出sum!
#include<cstdio>#include<queue>#include<vector>using namespace std;int main(){ int T; scanf("%d",&T); while(T--){ priority_queue<int,vector<int> >pq; queue<int>q; int n,m,x,sum = 0; scanf("%d%d",&n,&m); for (int i = 0; i < n; ++i){ scanf("%d",&x); pq.push(x); q.push(x); } for (;;){ if (pq.top() == q.front()){ sum++; if (!(m--))break; pq.pop();q.pop(); } else { if (!(m--))m = q.size() - 1; q.push(q.front()); q.pop(); } } printf("%d\n",sum); } return 0;}
0 0
- 5-7 UVA 12100 Printer Queue打印队列
- Printer Queue 打印队列 UVA 12100
- uva 12100 Printer Queue(打印队列)模拟
- uva 12100 Printer Queue 习题5-7 打印队列 (STL deque练习)
- Printer Queue打印队列
- 打印队列(Printer Queue)
- UVA 12100 Printer Queue(队列,优先队列)
- UVa 12100 Printer Queue(习题5-7)
- 习题5-7 打印队列(Printer Queue, UVa12100)
- UVa12100 Printer Queue (打印队列)
- UVA12100:Printer Queue(打印队列)
- 关于“打印队列 Printer Queue, ACM/ICPC NWERC 2006, UVa 12100)"的讨论
- UVa 12100 Printer Queue
- UVA - 12100 Printer Queue
- UVa 12100 - Printer Queue
- UVa 12100 - Printer Queue
- UVa: 12100 - Printer Queue
- UVa 12100 - Printer Queue
- 做自己想做的工作,你也可以
- IOS 四种保存数据的方式
- Java中的线程池——Executor框架
- 左旋转字符串 (可能不是你想的那么简单)
- 在storyboard中设置一个一个button,只进行了位置设置,没有使用约束,发现用代码修改不了如何解决
- 5-7 UVA 12100 Printer Queue打印队列
- 农村市场,互联网+时代的又一个金矿
- 编程是一场修行
- (1)java基本了解
- UITextField 输入框的基本使用(创建显示,回收键盘)
- Kafka 高性能吞吐揭秘
- Spring 4 学习笔记2:控制反转(IoC)和依赖注入(DI)
- 错误、调试、测试
- inport