UVA_12100: Printer Queue
2015-10-06 14:19
507 查看
点击查看原题
分析:本题解法多种,可以用两个队列,一个普通的存放id,另一个是优先队列存放id,还有一个数组用于优先队列的比较;我这里用的比较麻烦,两个队列,一个存放id和优先级二元组,一个存放优先级;
分析:本题解法多种,可以用两个队列,一个普通的存放id,另一个是优先队列存放id,还有一个数组用于优先队列的比较;我这里用的比较麻烦,两个队列,一个存放id和优先级二元组,一个存放优先级;
#include <iostream> #include <queue> #include <algorithm> #include <cstdio> #include <utility> using namespace std; typedef pair<int,int> id_pri; int pri[110]; bool cmp(int a, int b) { return a>b; } int main() { int T; scanf("%d",&T); while(T--) { int n,self; scanf("%d%d",&n,&self); queue<id_pri> idq; for(int i=0; i<n; i++) { id_pri ip; scanf("%d",&pri[i]); ip = make_pair(i,pri[i]); idq.push(ip); } sort(pri,pri+n,cmp); queue<int> priq; for(int i=0; i<n; i++) priq.push(pri[i]); int tm = 0; while(1) { id_pri id = idq.front(); while(id.second<priq.front()) { idq.pop(); idq.push(id); id = idq.front(); } tm++; if(id.first == self)break; idq.pop(); priq.pop(); } cout << tm << endl; } return 0; }
相关文章推荐
- iOS-UIControls介绍
- iOS-UIResponse之事件响应链及其事件传递
- iOS-UIResponse之事件响应链及其事件传递
- 第二十九篇:UIPickerView简述与代码练习
- 扩展 easyui-tabs 插件 关闭标签页方法
- EasyUI-window包含一个iframe,在iframe中如何关闭window
- iOS之UI随笔-图片轮播器
- UI图标素材
- 【译】使用requestIdleCallback
- 索引优先队列-IndexedPrirotyQueue的原理及实现(源码)
- 52. N-Queens II (Graph; WFS)
- 51. N-Queens (Graph; WFS)
- Java笔记---GUI( 图形用户界面)
- UIPopoverController的简单使用
- EasyUI-EasyUI框架入门学习
- String,StringBuffer, StringBuilder 的区别
- UICollectionView 以及 AWCollectionViewDialLayout
- 线段树 csu1551 Longest Increasing Subsequence Again
- UICollectionView使用实例(第三方类的使用及自定义UICollectionViewCell)
- HDU5493 Queue 线段树单点更新