• UVA1203 Argus


    思路

    用堆维护每个触发器的下一个事件,每次取出一个事件再把对应触发器的下一个事件加入堆即可

    代码

    #include <cstdio>
    #include <algorithm>
    #include <cstring>
    #include <queue>
    #include <iostream>
    #include <string>
    using namespace std;
    struct QNode{
        int time,num,Period;
        bool operator < (const QNode &b) const{
            return (time==b.time)?num>b.num:time>b.time;
        }
    };
    priority_queue<QNode> q;
    int main(){
        string s;
        while(cin>>s&&s=="Register"){
            int num,pro;
            scanf("%d %d",&num,&pro);
            q.push((QNode){pro,num,pro});
        }
        int k;
        scanf("%d",&k);
        for(int i=1;i<=k;i++){
            printf("%d
    ",q.top().num);
            QNode x=q.top();
            q.pop();
            q.push((QNode){x.time+x.Period,x.num,x.Period});
        }
        return 0;
    }
    
    
  • 相关阅读:
    2016.10.09
    Httpie 进行web请求模拟
    Python-集合
    python-字典
    MySQL权限系统
    MySQL8.0安装以及介绍(二进制)
    数据库对象中英文介绍
    Python-字符串
    GIT安装部署
    Cobbler安装部署
  • 原文地址:https://www.cnblogs.com/dreagonm/p/10681641.html
Copyright © 2020-2023  润新知