zoukankan      html  css  js  c++  java
  • 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;
    }
    
    
  • 相关阅读:
    将个人博客与github关联
    docker镜像制作
    perf命令
    vmstat命令
    ps命令
    top命令
    linux查看当前用户登陆信息
    .NET CORE应用程序启动
    WebAPI简介
    Redis-位图
  • 原文地址:https://www.cnblogs.com/dreagonm/p/10681641.html
Copyright © 2011-2022 走看看