zoukankan      html  css  js  c++  java
  • LA 3135 阿格斯(优先队列)

    https://vjudge.net/problem/UVALive-3135

    题意:

    你的任务是编写一个称为Argus的系统。该系统支持一个Register的命令

    Register Q_num Period

    该命令注册了一个触发器,它每Period秒钟就会产生一次编号为Q_num的事件。你的任务是模拟出前k个事件。如果多个事件同时发生,先处理Q_num小的事件。

    思路:
    题目很简单,一个优先队列解决。

     1 #include<iostream>
     2 #include<cstring>
     3 #include<queue>
     4 using namespace std;
     5 
     6 struct node
     7 {
     8     int Q_num, Period, Time;
     9     bool operator < (const node& rhs) const
    10     {
    11         return Time>rhs.Time || (Time == rhs.Time && Q_num > rhs.Q_num);
    12     }
    13 };
    14 
    15 char s[10];
    16 
    17 int main()
    18 {
    19     //freopen("D:\txt.txt", "r", stdin);
    20     int x, y, k;
    21     priority_queue<node> q;
    22     while (cin >> s)
    23     {
    24         if (s[0] == '#')  break;
    25         cin >> x >> y;
    26         node u;
    27         u.Q_num = x;
    28         u.Period = y;
    29         u.Time = y;
    30         q.push(u);
    31     }
    32     cin >> k;
    33     while (k--)
    34     {
    35         node u = q.top();
    36         q.pop();
    37         cout << u.Q_num << endl;
    38         u.Time += u.Period;
    39         q.push(u);
    40     }
    41 }
  • 相关阅读:
    linux压缩与解压
    simple 单例
    模板字符串
    变量的解构赋值
    let和const关键字
    React的基本认识
    Docker安装Nginx
    jenkins创建工程
    Jenkins系统初始化配置
    在CentOS上使用Docker镜像安装Jenkins
  • 原文地址:https://www.cnblogs.com/zyb993963526/p/6537884.html
Copyright © 2011-2022 走看看