题目:

幸福列车

Time Limit: 20000/10000 MS (Java/Others)    Memory Limit: 131070/65535 K (Java/Others)
Total Submission(s): 1525    Accepted Submission(s): 421

Problem Description
一批幸福的列车即将从杭州驶向幸福的终点站——温州,身为总列车长的linle有一些奇怪的癖好。

他会记录下全部乘客的名字(name)和他们的人品值(RP),根据这些将他们排序,并不时地从某辆列车里踢出人品最不好(RP值最低)的一个人,当两个人人品一样不好时,他就会踢出名字难听的人(linle认为按字典顺序,排在越在后面的人名字越难听)。

当然出于列车行驶需要,他还会不时的发布一些命令,比如让某个乘客上车,合并某两辆列车等。

linle的上一任秘书***因为不能高效地执行他的这些命令而被炒鱿鱼,他现在正在寻觅新的秘书人选,你能不能胜任呢?(谢绝男士,待遇丰厚~~~)

Input
本题包含多组测试,请处理到文件结束。
对于每一组测试,第一行包含两个整数 N ,M ,表示一共有N( N<=10000 ) 辆列车,执行M( M<=10000 )次操作。
接 下来有 N (从1开始记数)辆列车的信息,每辆列车先有一个数字 Xi(1 <= Xi <= 100 ),表示该列车有Xi个乘客,接下来Xi行乘客信息,每个乘客包含名字(20个字符以内,不包含空白符)和人品(0<= RP <=30000)。
再接下来有 M 行操作信息,一共有3种操作,分别为

GETON Xi name RP 表示有一个叫name的人品为RP的人登上第Xi列车

JOIN Xi Xj 表示有将第Xj辆列车合并到Xi辆列车

GETOUT Xi 表示从第Xi辆列车踢出一个人品最差的人

测试数据保证每个操作均合法,即不会将已经被合并到其他列车的列车再进行合并,也不会从一辆空列车里踢出乘客

Output
对于每个 GETOUT 命令,输出被踢出的那个人的名字
Sample Input
3 5
2
xhd 0
zl 1
2
8600 1
ll 2
1
Ignatius 3
GETOUT 1
JOIN 1 2
GETOUT 1
GETON 3
hoho 2
GETOUT 3

Sample Output
xhd
zl
hoho
Hint

Huge input, scanf is recommended.

根据题意,只需要开一个优先队列的数组,根据题意写好算子就可以了,然后对于每一种操作都进行相应的模拟即可。
代码:

 1 #include <iostream>
 2 #include <string>
 3 #include <cstdio>
 4 #include <cstring>
 5 #include <queue>
 6 #define MAX 10010
 7 using namespace std;
 8
 9 typedef struct
10 {
11     string name;
12     int rp;
13 }data;
14
15 struct cmp
16 {
17     bool operator() (data x,data y)
18     {
19         if(x.rp>y.rp) return 1;
20         else if(x.rp==y.rp && x.name<y.name) return 1;
21         return 0;
22     }
23 };
24
25 priority_queue<data,vector<data>,cmp> q[MAX];
26
27
28
29 int main()
30 {
31     int i,u,v,t,n,m;
32     data d;
33     string od;
34     //freopen("data.txt","r",stdin);
35     while(scanf("%d %d",&n,&m)!=EOF)
36     {
37         for(i=1;i<=n;i++)
38         {
39             while(!q[i].empty()) q[i].pop();
40             scanf("%d",&t);
41             while(t--)
42             {
43                 cin>>d.name>>d.rp;
44                 q[i].push(d);
45             }
46         }
47         while(m--)
48         {
49             cin>>od;
50             if(od=="GETON")
51             {
52                 cin>>u>>d.name>>d.rp;
53                 q[u].push(d);
54             }
55             else if(od=="JOIN")
56             {
57                 scanf("%d %d",&u,&v);
58                 while(!q[v].empty())
59                 {
60                     q[u].push(q[v].top());
61                     q[v].pop();
62                 }
63             }
64             else
65             {
66                 scanf("%d",&u);
67                 cout<<q[u].top().name<<endl;
68                 q[u].pop();
69             }
70         }
71     }
72     return 0;
73 }

1434

转载于:https://www.cnblogs.com/sineatos/p/3302134.html

HDU - 1434 - 幸福列车相关推荐

  1. hdu 1434 幸福列车

    题目连接 http://acm.hdu.edu.cn/showproblem.php?pid=1434 幸福列车 Description 一批幸福的列车即将从杭州驶向幸福的终点站--温州,身为总列车长 ...

  2. Hdu 1434 幸福列车【优先队列模拟】

    幸福列车 Time Limit: 20000/10000 MS (Java/Others) Memory Limit: 131070/65535 K (Java/Others) Total Submi ...

  3. HDU - 1434 幸福列车 优先队列

    Description 一批幸福的列车即将从杭州驶向幸福的终点站--温州,身为总列车长的linle有一些奇怪的癖好. 他会记录下全部乘客的名字(name)和他们的人品值(RP),根据这些将他们排序,并 ...

  4. HDU 1434 幸福列车(优先队列)

    优先队列的应用 #include<iostream> #include<cstdio> #include<cstring> #include<queue> ...

  5. 杭电1434 幸福列车

    幸福列车 Time Limit: 20000/10000 MS (Java/Others)    Memory Limit: 131070/65535 K (Java/Others) Total Su ...

  6. hdoj 1434 幸福列车 【优先队列】

    幸福列车 Time Limit: 20000/10000 MS (Java/Others)    Memory Limit: 131070/65535 K (Java/Others) Total Su ...

  7. 杭电1434幸福列车(嵌套结构体,优先队列)

    幸福列车 Time Limit: 20000/10000 MS (Java/Others)    Memory Limit: 131070/65535 K (Java/Others) Total Su ...

  8. hdoj 1434 幸福列车【模拟】

    幸福列车 Time Limit: 20000/10000 MS (Java/Others)    Memory Limit: 131070/65535 K (Java/Others) Total Su ...

  9. HDU 幸福列车 优先队列

    幸福列车 一批幸福的列车即将从杭州驶向幸福的终点站――温州,身为总列车长的linle有一些奇怪的癖好. 他会记录下全部乘客的名字(name)和他们的人品值(RP),根据这些将他们排序,并不时地从某辆列 ...

最新文章

  1. 前端和后端开发人员比例_前端开发人员vs后端开发人员–实践中的定义和含义
  2. 刻意练习:机器学习实战 -- Task01. K邻近算法
  3. oracle 之 EXP、IMP 使用简介
  4. Python从菜鸟到高手(2):清空Python控制台
  5. C++成员变量初始化顺序问题
  6. linux c++ 获取时间,详解Linux下的C++时间类型:time_t
  7. alter table 加多个字段_Vue 组件设计 - table不需要封装
  8. 码支付如何对接网站_做“刷脸支付”怎么推广?怎么办理刷脸支付POS机?
  9. 007---多态与多态性
  10. Android 在 Fragment 中使用 getActivity() NullPointException 的思考和解决办法
  11. JavaWeb - GET 请求中 URL 的最大长度限制(附:解决方案)
  12. 设置及清除Excel打开密码的两种方法
  13. 主流邮箱的反垃圾邮件技术
  14. 2023-2029年中国博物馆旅游行业市场经营管理及发展前景规划报告
  15. 微信公众号支付|微信H5支付|微信扫码支付|小程序支付|APP微信支付
  16. 用showdown预览markdown文件(vue3.0)
  17. 批量解析域名为IP地址的shell脚本和python脚本
  18. 怎么设置计算机桌面一键关机,电脑一键关机按钮创建 教你在桌面一点就自动关机...
  19. 充电桩检测设备TK4860E交流充电桩检定装置
  20. BUUCTF pwn 安洵杯_2018_neko

热门文章

  1. 1.4 聪明的投资者:一个世纪的股市历史
  2. 横向进位阵列乘法器与 流水线横向进位阵列乘法器 Verilog
  3. 如何用easybcd从硬盘安装ubuntu 10.0
  4. 是时候和PS说拜拜了,超强发丝级抠图算法重磅开源!
  5. 基于RFID物联网技术的​叉车​仓储管理系统
  6. dgl+pytorch 安装过程
  7. 2009全民健身日全国青少年攀岩赛 (杭州站)
  8. 婚姻有陪伴的功能,孩子有陪伴的功效,而孤独却是长在心里的一棵草,除非你自己有能力把他根除,否则,你将永远孤独。
  9. 逆水寒修改预约服务器,《逆水寒》怎么预约服务器 预约服务器满了怎么办
  10. 华为nova7pro手机计算机在哪里,熟练使用华为nova7系列这几个功能 随时随地办公学习不用愁...