zoukankan      html  css  js  c++  java
  • uvalive 3135 Argus priority_queue

    用优先队列维护每个时间点优先级最高的元素。

     1 #include<iostream>
     2 #include<cstdio>
     3 #include<cstdlib>
     4 #include<stack>
     5 #include<queue>
     6 #include<vector>
     7 #include<map>
     8 using namespace std;
     9 int n,m;
    10 
    11 struct Item
    12 {
    13     int Qnum,Period,Time;
    14     bool operator<(const Item &a) const
    15     {
    16         return Time>a.Time||(Time==a.Time&&Qnum>a.Qnum);
    17     }
    18 };
    19 
    20 int main()
    21 {
    22     priority_queue<Item>pq;
    23     char s[20];
    24     while(scanf("%s",s)&&s[0]!='#')
    25     {
    26         Item item;
    27         scanf("%d%d",&item.Qnum,&item.Period);
    28         item.Time=item.Period;
    29         pq.push(item);
    30     }
    31     int k;
    32     scanf("%d",&k);
    33     while(k--)
    34     {
    35         Item r=pq.top();
    36         pq.pop();
    37         printf("%d
    ",r.Qnum);
    38         r.Time+=r.Period;
    39         pq.push(r);
    40     }
    41     return 0;
    42 }
    View Code
  • 相关阅读:
    botzone Tetris2
    NOIP2017游记
    城乡联谊胡策会糊厕R3
    SRM 20
    AtCoder Regular Contest 082
    AtCoder Grand Contest 019
    复数模版
    SRM13
    NOI2017&&codeM2017游记
    java多线程编程
  • 原文地址:https://www.cnblogs.com/ITUPC/p/5075261.html
Copyright © 2011-2022 走看看