HDU 1434 幸福列车

  优先队列的应用

#include<iostream>
#include<cstdio>
#include<cstring>
#include<queue>
using namespace std;
#define maxn 10010
struct Node
{
    string name;
    int rp;
    friend bool operator <(Node a,Node b)
    {
        if(a.rp != b.rp) return a.rp > b.rp;
        else return a.name < b.name;
    }
};
priority_queue<Node>que[maxn];
int main()
{
    int n,m;
    while(~scanf("%d%d",&n,&m))
    {
        Node tmp;
        for(int i = 1;i <= n;i++)
        {
            int k;
            scanf("%d",&k);
            while(!que[i].empty()) que[i].pop();
            while(k--)
            {
                cin>>tmp.name>>tmp.rp;
                que[i].push(tmp);
            }
        }
        while(m--)
        {
            char op[25];
            scanf("%s",op);
            if(!strcmp(op,"GETON"))
            {
                int id;
                scanf("%d",&id);
                cin>>tmp.name>>tmp.rp;
                que[id].push(tmp);
            }
            else if(!strcmp(op,"JOIN"))
            {
                int i1,i2;
                scanf("%d%d",&i1,&i2);
                while(!que[i2].empty())
                {
                    tmp = que[i2].top();
                    que[i2].pop();
                    que[i1].push(tmp);
                }
            }
            else
            {
                int id;
                scanf("%d",&id);
                tmp = que[id].top();
                que[id].pop();
                cout<<tmp.name<<endl;
            }
        }
    }
    return 0;
}
时间: 2024-10-13 11:31:32

HDU 1434 幸福列车的相关文章

【优先队列】hdu 1434 幸福列车

用优先队列模拟: 1 #include <iostream> 2 #include <string> 3 #include <cstdio> 4 #include <cstring> 5 #include <queue> 6 const int MAXN = 10000+10; 7 using namespace std; 8 9 typedef struct{ 10 string name; 11 int rp; 12 }node; 13 14

hdu杭电1434 幸福列车【优先队列】

Problem Description 一批幸福的列车即将从杭州驶向幸福的终点站--温州,身为总列车长的linle有一些奇怪的癖好. 他会记录下全部乘客的名字(name)和他们的人品值(RP),根据这些将他们排序,并不时地从某辆列车里踢出人品最不好(RP值最低)的一个人,当两个人人品一样不好时,他就会踢出名字难听的人(linle认为按字典顺序,排在越在后面的人名字越难听). 当然出于列车行驶需要,他还会不时的发布一些命令,比如让某个乘客上车,合并某两辆列车等. linle的上一任秘书***因为不

幸福列车(优先队列模拟)

幸福列车 Time Limit: 20000/10000 MS (Java/Others)    Memory Limit: 131070/65535 K (Java/Others) Total Submission(s): 2169    Accepted Submission(s): 672 Problem Description 一批幸福的列车即将从杭州驶向幸福的终点站——温州,身为总列车长的linle有一些奇怪的癖好.他会记录下全部乘客的名字(name)和他们的人品值(RP),根据这些将

hdoj 2112 HDU Today

HDU Today Time Limit: 15000/5000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 19710    Accepted Submission(s): 4640 Problem Description 经过锦囊相助,海东集团终于度过了危机,从此,HDU的发展就一直顺风顺水,到了2050年,集团已经相当规模了,据说进入了钱江肉丝经济开发区500强.这时候

hdu 5163 Taking Bus(模拟)

hdu 5163 Taking Bus 问题描述 Bestland有一条非常长的马路,马路上设有n个公交汽车站.公交汽车站从左到右标号为1到n.有m个人想要乘公交.你的任务是找出每个人到终点为止所需要的时间.注意:你需要用来解决这道题目的信息在Input里面,请仔细阅读. 输入描述 输入的第一行包含一个整数T (1≤T≤60),表示测试数据的组数.对于每组测试数据:第一行包含两个整数n和m (2≤n,m≤105),表示公交车站的数目和乘客的数目. 接下来一行包含n?1个整数, d1,d2,-,d

HDU 4508 湫湫系列故事——减肥记I (2013腾讯编程马拉松初赛第一场)

http://acm.hdu.edu.cn/showproblem.php?pid=4508 题目大意: 给定一些数据. 每组数据以一个整数n开始,表示每天的食物清单有n种食物. 接下来n行,每行两个整数a和b,其中a表示这种食物可以带给湫湫的幸福值(数值越大,越幸福),b表示湫湫吃这种食物会吸收的卡路里量. 最后是一个整数m,表示湫湫一天吸收的卡路里不能超过m. 思路: 完全背包. 一开始以为是01背包. 敲了01后样例2不对啊!!! 然后改成完全就过了..就改循环体就好了.. #includ

HDU 2112 HDU Today【最短路+map容器,spfa算法+Dijkstra算法】

HDU Today Time Limit: 15000/5000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 25102    Accepted Submission(s): 6067 Problem Description 经过锦囊相助,海东集团终于度过了危机,从此,HDU的发展就一直顺风顺水,到了2050年,集团已经相当规模了,据说进入了钱江肉丝经济开发区500强.这时候

HDU 2122 HDU Today(dijkstra+map)

HDU Today Problem Description 经过锦囊相助,海东集团终于度过了危机,从此,HDU的发展就一直顺风顺水,到了2050年,集团已经相当规模了,据说进入了钱江肉丝经济开发区500强.这时候,XHD夫妇也退居了二线,并在风景秀美的诸暨市浬浦镇陶姚村买了个房子,开始安度晚年了.这样住了一段时间,徐总对当地的交通还是不太了解.有时很郁闷,想去一个地方又不知道应该乘什么公交车,在什么地方转车,在什么地方下车(其实徐总自己有车,却一定要与民同乐,这就是徐总的性格).徐总经常会问蹩脚

hdu 2112 (最短路+map)

链接:http://acm.hdu.edu.cn/showproblem.php?pid=2112 HDU Today Time Limit: 15000/5000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 14515    Accepted Submission(s): 3405 Problem Description 经过锦囊相助,海东集团终于度过了危机,从此,HDU的发