【题目链接】
http://acm.hdu.edu.cn/showproblem.php?pid=1873

【问题描述】
看病要排队这个是地球人都知道的常识。 不过经过细心的0068的观察,他发现了医院里排队还是有讲究的。0068所去的医院有三个医生(汗,这么少)同时看病。而看病的人病情有轻重,所以不能根据简单的先来先服务的原则。所以医院对每种病情规定了10种不同的优先级。级别为10的优先权最高,级别为1的优先权最低。医生在看病时,则会在他的队伍里面选择一个优先权最高的人进行诊治。如果遇到两个优先权一样的病人的话,则选择最早来排队的病人。  现在就请你帮助医院模拟这个看病过程。

【输入】
输入数据包含多组测试,请处理到文件结束。 每组数据第一行有一个正整数N(0<N<2000)表示发生事件的数目。 接下来有N行分别表示发生的事件。 一共有两种事件: 1:"IN A B",表示有一个拥有优先级B的病人要求医生A诊治。(0<A<=3,0<B<=10) 2:"OUT A",表示医生A进行了一次诊治,诊治完毕后,病人出院。(0<A<=3)

【输出】
对于每个"OUT A"事件,请在一行里面输出被诊治人的编号ID。如果该事件时无病人需要诊治,则输出"EMPTY"。
诊治人的编号ID的定义为:在一组测试中,"IN A B"事件发生第K次时,进来的病人ID即为K。从1开始编号。

【样例输入】

IN 1 1 
IN 1 2 
OUT 1 
OUT 2 
IN 2 1 
OUT 2 
OUT 1

IN 1 1 
OUT 1

【样例输出】
2
EMPTY
3
1
1

【算法代码】

#include <bits/stdc++.h>
using namespace std;struct Node{int pr,index;
};bool operator<(Node a,Node b){if(a.pr!=b.pr)return a.pr<b.pr;elsereturn a.index>b.index;
}int main(){int n;while(cin>>n){priority_queue<Node> q[3];int cnt=0;while(n--){char s[5];cin>>s;if(s[0]=='I'){int id,pr;Node node;cnt++;cin>>id>>pr;node.pr=pr;node.index=cnt;q[id-1].push(node);} else {int id;cin>>id;if(q[id-1].empty())cout<<"EMPTY"<<endl;elsecout<<q[id-1].top().index<<endl,q[id-1].pop();}}}return 0;
}/*
in:
7
IN 1 1
IN 1 2
OUT 1
OUT 2
IN 2 1
OUT 2
OUT 1
2
IN 1 1
OUT 1
out:
2
EMPTY
3
1
1
*/

【参考文献】
https://blog.csdn.net/qq_41879343/article/details/100780317
https://www.cnblogs.com/DOLFAMINGO/p/7538752.html

HDU 1873 - 看病要排队 ← 优先队列相关推荐

  1. 【HDU 1873 --- 看病要排队】优先队列

    [HDU 1873 --- 看病要排队]优先队列 Description 看病要排队这个是地球人都知道的常识. 不过经过细心的0068的观察,他发现了医院里排队还是有讲究的.0068所去的医院有三个医 ...

  2. HDU 1873 看病要排队(结构体+优先队列)

    题目: Problem Description 看病要排队这个是地球人都知道的常识. 不过经过细心的0068的观察,他发现了医院里排队还是有讲究的.0068所去的医院有三个医生(汗,这么少)同时看病. ...

  3. HDU - 1873 看病要排队(优先队列)

    看病要排队 #include<iostream> #include<queue> using namespace std; struct node {int x;//优先级 i ...

  4. hdu 1873 看病要排队

    看病要排队 Time Limit: 3000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Submiss ...

  5. hdu1873 看病要排队-优先队列

    Problem Description 看病要排队这个是地球人都知道的常识. 不过经过细心的0068的观察,他发现了医院里排队还是有讲究的.0068所去的医院有三个医生(汗,这么少)同时看病.而看病的 ...

  6. 【优先队列】HDU 1873——看病找医生

    来源:点击打开链接 看路径记录的BFS之前,再看一遍优先队列的用法. 优先队列的排序规则可以用运算符重载的方式完成,通常意义下,应该用friend bool operator <进行重载. #i ...

  7. 杭电1873题 看病要排队

    题目链接~~> 这题是接触优先队列的第二题代码有点... 开始做时一直wa,最后才明白应该把 priority_queue<zha>q1; 等放到循环里面去,... 代码: #inc ...

  8. Java算法_优先队列和PriorityQueue——HDU 1873:看病要排队

    目录 优先队列和PriorityQueue HDU 1873:看病要排队 java.util.Comparator 优先队列和PriorityQueue java.util.PriorityQueue ...

  9. 【HDU - 1873】 看病要排队(优先队列)

    题干: 看病要排队这个是地球人都知道的常识.  不过经过细心的0068的观察,他发现了医院里排队还是有讲究的.0068所去的医院有三个医生(汗,这么少)同时看病.而看病的人病情有轻重,所以不能根据简单 ...

最新文章

  1. 安装VMware ESXi 6 RC版
  2. 基于 RT-Thread的麦克纳姆轮小车循迹运动控制算法开发和研究
  3. HTML和JavaScript代码分离、平稳退化(1)
  4. 限制域用户多点登录--脚本
  5. 精选文章 什么是跨域?怎么解决跨域问题?
  6. 转换mp3名称的小程序
  7. java随机数生成(固定位数)
  8. @微信官方,给我微信旁边加个福字
  9. shell编程入门步步高(三、shell的基本结构)
  10. nodejs导出excel
  11. 接入阿里云云呼叫中心
  12. 配置环境变量时Path单行显示问题
  13. 大型体检系统源码 医院PEIS管理系统源码 BS架构
  14. 5种Alexa世界排名作弊方式
  15. mod_rewrite htaccess 简单使用
  16. 2018年6月编程语言tiobe排行
  17. Linux下C语言实现TCP文件传输
  18. 知识图谱实践(网易课程, 汽车)
  19. PSIM入门:简单实例讲解PSIM基本操作(PSIM Basic Simulation)
  20. Windows7中创建逻辑驱动器(扩展分区)

热门文章

  1. 大厂对学历的要求是什么?如果学历不够,拿什么来凑?
  2. 《天池龙珠 - Python训练营》03.Python基础进阶:从函数到高级魔法方法
  3. python游戏辅助lol_Python爬虫实战,60行代码爬取英雄联盟全英雄全皮肤,找寻曾今那些被删除的绝版皮肤...
  4. 安装算量软件哪个速度快效率高?
  5. 我希望逢着一个丁香一样地结着愁怨的姑娘
  6. 2022年“研究生科研素养提升”系列公益讲座在线测评题目
  7. 名帖176 苏轼 行书《杜甫堂成诗卷》
  8. android扇形动画弹出icon的功能
  9. 单元格内容分列多行_『如何将excel单个表格里的多行数据分列』
  10. mac chrome 常用插件