首页 > 其他 > 详细

LA 3135 Argus (优先队列)

时间:2015-01-29 12:30:43      阅读:258      评论:0      收藏:0      [点我收藏+]

https://icpcarchive.ecs.baylor.edu/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=1136

 

 

#include<cstdio>
#include<cstring>
#include<iostream>
#include<algorithm>
#include<queue>
using namespace std;
struct Item
{
    int QNum,Period,Time;
    /*bool operator < (const Item &a) const
    {
        return Time > a.Time ||(Time == a.Time &&QNum>a.QNum);
    }*/
    friend bool operator  < (Item a,Item b) {return a.Time>b.Time||(a.Time==b.Time&&a.QNum>b.QNum);}  //比较倾向第二种写法  对 > 来说 小的先出列
};
int main()
{
    priority_queue<Item> pq;
    char s[20];
    while(scanf("%s",s)&&s[0]!=#)
    {
        Item item;
        scanf("%d%d",&item.QNum,&item.Period);
        item.Time = item.Period;
        pq.push(item);
    }
    int K;
    scanf("%d",&K);
    while(K--)
    {
        Item r=pq.top();
        pq.pop();
        printf("%d\n",r.QNum);
        r.Time +=r.Period;
        pq.push(r);
    }
    return 0;
}

 

LA 3135 Argus (优先队列)

原文:http://www.cnblogs.com/sola1994/p/4259285.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!