zoukankan      html  css  js  c++  java
  • UVa 12100 Printer Queue (习题 5-7)

    传送门:https://uva.onlinejudge.org/external/121/12100.pdf

    题意:队列中待打印的任务(1 <= n <= 100)带有优先级(1-9), 打印步骤为每次从队首拿出一个, 如果队列中没有优先级比该任务高的, 打印这个任务; 若有优先级高的, 把这个任务放到队尾,  并打印优先级最高的. 每打印一次耗时1分钟, 求给定任务什么时候打印.

    水题A半天    不愧是弱渣..........

    最坏的情况需要maxn*maxn的空间........

    front  rear  记录前后位置

     1 #include <bits/stdc++.h>
     2 using namespace std;
     3 
     4 const int MAXN = 111;
     5 int t, n, m, _time;
     6 int que[MAXN*MAXN];
     7 
     8 void process(){
     9     int front = 0, rear = n;
    10     while(true){
    11         int maxi = que[front];
    12         for(int i = front; i < rear; ++i){
    13             if(que[i] > maxi){
    14                 if(front == m) m = rear;
    15                 que[rear++] = que[front++];
    16                 break;
    17             }
    18             else if(i == rear - 1){
    19                 ++_time;
    20                 if(front == m) return ;
    21                 front++; 
    22             }
    23         }
    24     }
    25 }
    26 int main(){
    27     cin >> t;
    28     while(t--){
    29         _time = 0;
    30         cin >> n >> m;
    31         for(int i = 0; i < n; ++i) cin >> que[i];
    32         process();
    33         cout << _time << endl;
    34     }
    35     return 0;
    36 }
  • 相关阅读:
    Python基础知识
    Oracle 总结
    Linux基本命令
    测试理论
    计算机基础
    http常见的状态码,400,401,403状态码分别代表什么?
    html
    day21 包
    day20 模块引入的一些说明
    我又回来了???
  • 原文地址:https://www.cnblogs.com/book-book/p/5335136.html
Copyright © 2011-2022 走看看