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

题意就不说了,简单的优先队列,创建一个一维数组的优先队列和一个结构体,里面的数据成员为名字和RP值,按照题目要求排好序直接执行操作即可。

#include<iostream>
#include<queue>
#include<algorithm>
using namespace std;
struct train
{string name;int rp;friend bool operator <(train p,train q)  {if(p.rp==q.rp)return p.name<q.name; ///operator里的小于号和sort里的相反return p.rp>q.rp;}//如果rp相等,名字从大到小排,rp不等按照rp从小到大排
}s;
int main()
{int n,m,i,j;while(cin>>n>>m){priority_queue<train>q[10000+10]; //创建优先队列int x;for(i=1;i<=n;i++){cin>>x;for(j=0;j<=x-1;j++){cin>>s.name>>s.rp;q[i].push(s); //将结构体(含人名与RP)存到优先队列里}}while(m--){int y;string str;cin>>str;if(str=="GETON"){cin>>y>>s.name>>s.rp;q[y].push(s);}if(str=="GETOUT"){cin>>y;cout<<q[y].top().name<<endl;q[y].pop();}if(str=="JOIN"){cin>>x>>y;while(!q[y].empty())  //将y列车里的所有元素都存在x列车里{q[x].push(q[y].top());q[y].pop();}}}}
}

HDU-1434--优先队列---幸福列车相关推荐

  1. HDU 1434(幸福列车)

    每辆列车对应一个优先队列,按要求入队列.出队列.合并队列即可,详细见注释. #include <cstdio> #include <cstring> #include < ...

  2. HDU1434 优先队列 幸福列车

    优先队列 头文件:#include<queue> 初始化:priority_queue<类型type,容器vector<type>,比较方式less<type> ...

  3. 『杭电1434』幸福列车

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

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

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

  5. hdu 1434 幸福列车

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

  6. HDU - 1434 - 幸福列车

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

  7. HDU 幸福列车 优先队列

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

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

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

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

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

  10. 杭电1434 幸福列车

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

最新文章

  1. 综述 | 现在是蛋白质组学数据共享和再分析的黄金时间?
  2. [转]VC++下使用ADO操作数据库
  3. Android socket 编程 实现消息推送(二)
  4. (0073)iOS开发之核心动画高级技巧
  5. hdu 4738 Caocao's Bridges 求无向图的桥【Tarjan】
  6. java.net.url 中文乱码,.Net获取URL中文参数值的乱码问题解决方法总结
  7. 剑指Offer面试题:1.实现单例模式
  8. 和最大的连续子数组 Maximum Subarray
  9. 数据库接口实验--php实现--
  10. 【Neo4j】CQL基本语法
  11. 解一元二次方程lisp_lisp语言编写lisp程序解二元一次方程组和一元二次方程组应该怎么做​...
  12. 学校电脑的无语配置%¥3
  13. 基于小波精英解学习和多角度搜索的新型阴阳平衡优化算法
  14. 多麦克风做拾音的波束_语音交互:先从麦克风阵列聊起
  15. H5游戏中心 免费版v1.2源码 网站全套源码
  16. Hi3559AV100 MPP介绍
  17. 【Python】根据CID获取化合物数据(调用Pubchem官方API)
  18. 思维导图-Freemind
  19. Web漏洞之SSRF(服务器端请求伪造)
  20. Hive 安装及使用攻略

热门文章

  1. java动态代理底层探究
  2. wps点击目录就跳到内容的方法教程
  3. 盘点计算机界十位顶级人物,看看你认识几个?
  4. Ubuntu 安装MySQL,修改root密码
  5. AI讲话总爱“结巴”?这篇NeurIPS论文找到了病因,结巴率已接近人类!
  6. java数组转字符串 逗号_java数组与以逗号分隔开的字符串的相互转换操作
  7. 【java保留两位小数并舍去.00】
  8. 用小爱,小度语音控制家里的灯,无网络时,不影响物理开关
  9. RabbitMQ安装配置
  10. Linux下PHOEBUS的编译及相关功能配置