HDU-1434--优先队列---幸福列车
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--优先队列---幸福列车相关推荐
- HDU 1434(幸福列车)
每辆列车对应一个优先队列,按要求入队列.出队列.合并队列即可,详细见注释. #include <cstdio> #include <cstring> #include < ...
- HDU1434 优先队列 幸福列车
优先队列 头文件:#include<queue> 初始化:priority_queue<类型type,容器vector<type>,比较方式less<type> ...
- 『杭电1434』幸福列车
Problem Description 一批幸福的列车即将从杭州驶向幸福的终点站--温州,身为总列车长的linle有一些奇怪的癖好. 他会记录下全部乘客的名字(name)和他们的人品值(RP),根据这 ...
- Hdu 1434 幸福列车【优先队列模拟】
幸福列车 Time Limit: 20000/10000 MS (Java/Others) Memory Limit: 131070/65535 K (Java/Others) Total Submi ...
- hdu 1434 幸福列车
题目连接 http://acm.hdu.edu.cn/showproblem.php?pid=1434 幸福列车 Description 一批幸福的列车即将从杭州驶向幸福的终点站--温州,身为总列车长 ...
- HDU - 1434 - 幸福列车
题目: 幸福列车 Time Limit: 20000/10000 MS (Java/Others) Memory Limit: 131070/65535 K (Java/Others) Tota ...
- HDU 幸福列车 优先队列
幸福列车 一批幸福的列车即将从杭州驶向幸福的终点站――温州,身为总列车长的linle有一些奇怪的癖好. 他会记录下全部乘客的名字(name)和他们的人品值(RP),根据这些将他们排序,并不时地从某辆列 ...
- hdoj 1434 幸福列车 【优先队列】
幸福列车 Time Limit: 20000/10000 MS (Java/Others) Memory Limit: 131070/65535 K (Java/Others) Total Su ...
- 杭电1434幸福列车(嵌套结构体,优先队列)
幸福列车 Time Limit: 20000/10000 MS (Java/Others) Memory Limit: 131070/65535 K (Java/Others) Total Su ...
- 杭电1434 幸福列车
幸福列车 Time Limit: 20000/10000 MS (Java/Others) Memory Limit: 131070/65535 K (Java/Others) Total Su ...
最新文章
- 综述 | 现在是蛋白质组学数据共享和再分析的黄金时间?
- [转]VC++下使用ADO操作数据库
- Android socket 编程 实现消息推送(二)
- (0073)iOS开发之核心动画高级技巧
- hdu 4738 Caocao's Bridges 求无向图的桥【Tarjan】
- java.net.url 中文乱码,.Net获取URL中文参数值的乱码问题解决方法总结
- 剑指Offer面试题:1.实现单例模式
- 和最大的连续子数组 Maximum Subarray
- 数据库接口实验--php实现--
- 【Neo4j】CQL基本语法
- 解一元二次方程lisp_lisp语言编写lisp程序解二元一次方程组和一元二次方程组应该怎么做​...
- 学校电脑的无语配置%¥3
- 基于小波精英解学习和多角度搜索的新型阴阳平衡优化算法
- 多麦克风做拾音的波束_语音交互:先从麦克风阵列聊起
- H5游戏中心 免费版v1.2源码 网站全套源码
- Hi3559AV100 MPP介绍
- 【Python】根据CID获取化合物数据(调用Pubchem官方API)
- 思维导图-Freemind
- Web漏洞之SSRF(服务器端请求伪造)
- Hive 安装及使用攻略