zoukankan      html  css  js  c++  java
  • E

    - 题目大意

        有一系列的事件,它每Period秒钟就会产生编号为qNum的事件,你的任务是模拟出前k个事件,如果多个事件同时发生,先处理qNum小的事件

    - 解题思路

       很多相同的数值在同一时刻内,数值小的先输出,那么就是求若干个中最小的,那么就可以用优先队列进行维护。

    - 代码

    #include<cstdio>
    #include<queue>
    using namespace std;
    char str[10];
    struct Edge
    {
        int id,t,tt;
        bool operator< (Edge e)const
        {
           return(tt>e.tt)||(tt==e.tt&&id>e.id);
        }
    };
    
    int main()
    {
        priority_queue<Edge>q;
        int n,m;
        while(scanf("%s",str)!=EOF)
        {
            if(str[0]=='#')
                break;
                Edge e;
            scanf("%d%d",&e.id,&e.t);
            e.tt=e.t;
            q.push(e);
        }
        scanf("%d",&n);
        while(n--)
        {
            Edge e=q.top();
            q.pop();
            printf("%d
    ",e.id);
            e.tt=e.tt+e.t;
            q.push(e);
        }
        return 0;
    }
    

      

  • 相关阅读:
    一条痛并快乐的路
    Daily Scrum 11.1
    Daily Scrum 10.31
    Daily Scrum 10.30
    Daily Scrum 10.29
    Daily Scrum 10.28
    Daily Scrum 10.27
    (Alpha)Let's-Chronos分数分配规则
    Daily Scrum 10.26
    Daily Scrum 10.25
  • 原文地址:https://www.cnblogs.com/alpacadh/p/8449436.html
Copyright © 2011-2022 走看看