uva 12100 Printer Queue(打印队列)模拟
来源:互联网 发布:网络教育院校 编辑:程序博客网 时间:2024/04/30 15:46
思路:按照输入的顺序,将每个任务入队,同时用另一个数组保存这些优先级,然后按照从大到小或者从小到大的顺序对数组排序,表示每个执行的先后顺序。然后对队列进行操作,先从队列头取出一个元素,判断是不是和数组的下标指向的值相等,若相等,则打印的时间数+1,同时数组下标+1或者-1,若不相等,则直接扔到队尾,重新开始下一次循环。
(开始理解错题意,认为是把队列中优先级最高的任务直接移除,而忽略了队列只能一个一个的出)
import java.util.Arrays;import java.util.LinkedList;import java.util.Queue;import java.util.Scanner;public class Main {public static void main(String[] args) {Scanner scan = new Scanner(System.in);int t = scan.nextInt();while(t--!=0){int n = scan.nextInt();int m = scan.nextInt();Queue<Num> q = new LinkedList<>();int[] A = new int[n];for(int i=0;i<n;i++){int p = scan.nextInt();Num num = new Num(p,i);q.add(num);A[i] = p;}Arrays.sort(A);int j = n-1;int cnt = 0;boolean ok = false;while(!ok){Num num = q.peek();q.poll();if(num.value==A[j]){cnt++;j--;if(num.pos==m){ok = true;}}else{q.add(num);}}System.out.println(cnt);}}static class Num{int value;int pos;public Num(int value,int pos){this.value = value;this.pos = pos;}}}
0 0
- uva 12100 Printer Queue(打印队列)模拟
- Printer Queue 打印队列 UVA 12100
- 5-7 UVA 12100 Printer Queue打印队列
- Printer Queue打印队列
- 打印队列(Printer Queue)
- UVA 12100 Printer Queue(队列,优先队列)
- uva 12100 Printer Queue 优先级队列模拟题 数组模拟队列
- UVa 12100 - Printer Queue(模拟)
- UVa 12100 - Printer Queue(模拟)
- POJ 3125 Printer Queue【简单模拟a打印队列】
- POJ 3125 Printer Queue(打印队列---模拟)
- UVa12100 Printer Queue (打印队列)
- UVA12100:Printer Queue(打印队列)
- uva 12100 Printer Queue 习题5-7 打印队列 (STL deque练习)
- 关于“打印队列 Printer Queue, ACM/ICPC NWERC 2006, UVa 12100)"的讨论
- UVa 12100 Printer Queue
- UVA - 12100 Printer Queue
- UVa 12100 - Printer Queue
- 错误 14 error LNK2005: public: static unsigned int const zxing::DecodeHints::CHARACTER_SET (?CHARACTER
- 算法中的技巧
- MySQL 5.7 安装完成后,立即要调整的性能选项
- I,P,B帧和PTS,DTS的关系
- 两步安装tensorflow在windows上
- uva 12100 Printer Queue(打印队列)模拟
- 最小生成树-Prim算法
- 下雨天
- CSS常用居中方法
- w3c标准
- jQuery客户端编程实例下
- 398. Random Pick Index
- MySQL抓包工具:MySQL Sniffer【转】
- 如何打开很大很大的文件---python