zoukankan      html  css  js  c++  java
  • UVa 12100打印队列(队列)

    原题链接:https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=3252

    这题可以建立两个队列,一个为优先级队列,当两者队首相同时就出队列,否则将队首放到队尾。

     1 #include<iostream>
     2 #include<queue>
     3 using namespace std;
     4 
     5 queue<int> p;
     6 priority_queue<int>pq;
     7 
     8 int main()
     9 {
    10     int t, n, m, i, j, k;
    11     cin >> t;
    12     while (t--)
    13     {
    14         cin >> n >> m;
    15         k = n;
    16         while (!p.empty()) p.pop();
    17         while (!pq.empty()) pq.pop();
    18         while (n--)
    19         {
    20             cin >> i;
    21             p.push(i);
    22             pq.push(i);
    23         }
    24         int count = 0;
    25         for (int i = 0; i <= m; i++)
    26         {
    27             if (p.front() != pq.top())
    28             {
    29                 j = p.front();
    30                 p.push(j);
    31                 p.pop();
    32                 if (i == m)   m = m + k;            //如果第m个关注的任务不能打印,则在循环k次
    33             }
    34             else
    35             {
    36                 p.pop();
    37                 pq.pop();
    38                 count++;
    39                 k--;
    40             }
    41         }
    42         cout << count << endl;
    43     }
    44     return 0;
    45 }
  • 相关阅读:
    North North West
    HDU-5387 Clock
    HDU-1036 Average is not Fast Enough!
    Growling Gears
    HDU-5375 Gray code
    HDU-5373 The shortest problem
    hdu-5364 Distribution money
    UVA
    HDU-5363 Key Set
    HDU-5326 Work
  • 原文地址:https://www.cnblogs.com/zyb993963526/p/6098230.html
Copyright © 2011-2022 走看看