题意:给出n个有优先级的job,9表示优先级最高,1表示优先级最低,如果队列中有比队首优先级更高的job,将队首的job移到队尾,否则移出队首job打印

思路:用优先级队列来排序,将优先级最高的job放到 队首,用普通队列来存取job的顺序。

代码 如下:

#include <iostream>
#include <fstream>
#include <queue>class Solution
{
public:void init(int n, int m){this-> n = n; this->m = m;}void setA(int i, int n){a[i] = n;}int solve(){std::queue<Node> queue;std::priority_queue<int> pq;for (int i = 0; i < n; i++){Node node;node.pos = i; node.num = a[i];queue.push(node);pq.push(a[i]);}int time = 0;while (!queue.empty()){Node node = queue.front();if (node.num >= pq.top()){time++;pq.pop();queue.pop();if (node.pos == m) break;}else{queue.pop();queue.push(node);}}return time;}private:class Node{public:int pos;int num;bool operator < (Node& b) const{return num < b.num;}};
private:static const int N = 101;int a[N];int n, m;
};int main() {
#ifndef ONLINE_JUDGEstd::ifstream fin("f:\\oj\\uva_in.txt");std::streambuf* old = std::cin.rdbuf(fin.rdbuf());
#endifint t;Solution solver;std::cin >> t;for (int i = 1; i <= t; i++){int n, m;std::cin >> n >> m;solver.init(n, m);for (int i = 0; i < n; i++){int a;std::cin >> a;solver.setA(i, a);}int ans = solver.solve();std::cout << ans << std::endl;}
#ifndef ONLINE_JUDGEstd::cin.rdbuf(old);
#endifreturn 0;

UVa12100 - Printer Queue相关推荐

  1. 【POJ - 3125 】Printer Queue(模拟,队列+优先队列,STL)

    题干: The only printer in the computer science students' union is experiencing an extremely heavy work ...

  2. python数据结构与算法练习-Printer Queue

    python数据结构与算法练习-队列 Printer Queue python实现 需要注意的知识点: Printer Queue 链接: link. The only printer in the ...

  3. 玩转HP打印机(DeskJet 2700) printer queue issue is not fixed

    最近买了一台hp打印机学习用,其中还发生过一些波折. (手机打印都很方便,本文就不提了,总之怎么都能打) hp 2301 + 小白盒子 第一次没有仔细做功课,购买了一个没有无线功能(只支持USB连接电 ...

  4. 25行代码AC——习题5-7 打印队列(Printer Queue,UVa 12100)——解题报告

    励志用尽量少的代码做高效的表达. 题目(提交)链接→UVa-12100 题目描述: 我们需要用打印机打印任务.每个任务都有1~9间的优先级,优先级越高,任务越急. 打印机的运作方式:从打印队列里取出一 ...

  5. poj 3125 Printer Queue(STL注意事项)

    http://poj.org/problem?id=3125 这道题没什么突出的地方,是一道很水的题,可以用list,也可以用queue来解决.(用list解决的代码我就不写了)把它写上来,只是因为我 ...

  6. UVa 12100 - Printer Queue

    刚A完图书系统那道题,然后看提交次数那个字典的比这道题多,看了看那道更新字典没有思路,就看了这道题,感觉这道题比更新字典简单多了. #include<iostream> #include& ...

  7. uva 12100 Printer Queue 优先级队列模拟题 数组模拟队列

    题目很简单,给一个队列以及文件的位置,然后一个一个检查,如果第一个是优先级最高的就打印,否则放到队列后面,求所要打印的文件打印需要花费多长时间. 这里我用数组模拟队列实现,考虑到最糟糕的情况,必须把数 ...

  8. 《算法竞赛入门经典(第2版)》——学习记录

    前言:   这里主要记录本人在学习紫书过程中充分理解过的题目的AC代码,便于以后回顾时查找代码和思路,毕竟看别人的真的有点难懂.此外,本书甚至是本书之外的相关知识学习也可能在此留下记录.   作为一只 ...

  9. 暑期集训1:C++STL 例3:UVA-12100

    2018学校暑期集训第一天--C++与STL 例三  --  UVA - 12100 Printer Queue The only printer in the computer science st ...

最新文章

  1. python 抛出异常raise
  2. 使用 Solid 私有化存储 IPFS 文件哈希值
  3. el-drawer点击的时候为什么有边框_剪映教学之视频拍摄加剪辑【一】:出视频上下黑色边框模糊效果,视频广告配音...
  4. Linux系列之fdisk 分区挂盘
  5. TensorFlow零基础入门指南——计算模型、数据模型、运行模型!
  6. 《C语言及程序设计》实践参考——转着圈加密
  7. Plan——没有计划不可能越狱
  8. js高级学习笔记-14-从函数运行和内存角度理解闭包
  9. 自学-Linux-老男孩Linux77期-day2
  10. 三态缓冲器!74系列芯片的型号区别…
  11. B样条曲线(B-spline Curves)
  12. 基于图书管理系统的需求分析之可行性分析安全需求分析系统需求分析
  13. 2022计算机类投稿心得(须知)
  14. diskpart命令
  15. BDP数据可视化分析工具,TAGUL数据可视化分析工具
  16. D. Pythagorean Triples(1487D)(打表找规律 + 二分)
  17. linux 免费教程下载,Linux系统入门教程
  18. 微信公众账号分类入门知识
  19. kubernetes1.5.2版本 yum install 方式安装部署 认证授权机制 安全模式 完整版
  20. 2021哈工大软件构造Lab3

热门文章

  1. UIButton 按钮控件-IOS开发 (实例)
  2. 网电空间战 6-如何进攻
  3. java越权发送邮件_水平越权的常见解决方法
  4. python入门作业编程题-Python编程:从入门到实践——【作业】——第六章(字典)...
  5. python怎么输入代码-教你如何将自己的脚本代码放到服务器上运行
  6. python处理excel表格教程-python操作excel(内附python教程分享)
  7. arcgis python规划地类-作为规划师,为什么我建议你学Python数据分析?
  8. python画三维平面-Python 绘制酷炫的三维图步骤详解
  9. python编程输入标准-《Python编程 第四版》 -第3章 脚本运行上下文
  10. vscode使用教程python-VS Code 配置 Python 开发环境