hd 1873 看病要排队——我应该排队看看脑子了
来源:互联网 发布:广州画室知乎 编辑:程序博客网 时间:2024/05/01 13:24
戳我传送 Σ(っ °Д °;)っ
首先,题意分析
这道题的题意理解起来不难,也不要多想。每次有一个"IN"出现的时候,将该病人的id和优先级送入对应医生的数据组中。每次有一个"OUT"出现的时候就输出对应医生当前数据中优先级最高的病人的id,如果没有病人就输出"EMPTY"
根据题意,第n次的"IN"对应的病人编号就是n
然后说怎么做··
应该用优先队列(最近怎么总是有限队列 差评(╯‵□′)╯︵┻━┻)
然后就是很简单的调用c++的模板库,进行队列的压入啊弹出啊返回队头值啥的
下面上代码
#include <stdio.h>#include <queue>#include <iostream>#include <string.h>#include <algorithm>using namespace std;struct Node{int no;int data;const bool operator<(Node a) const{ if (data==a.data) return no>a.no; else return data<a.data;}};int main(){int n;while (scanf("%d",&n)!=EOF){ priority_queue<Node> x,y,z;char ch[5];int i;int a,b;int no=1;Node node;for (i=0;i<n;i++){ scanf("%s",ch); if (strcmp(ch,"IN")==0) { scanf("%d %d",&a,&b); if (a==1) { node.data=b; node.no=no++; x.push(node); } else if(a==2) { node.data=b; node.no=no++; y.push(node); } else if(a==3) { node.data=b; node.no=no++; z.push(node); } } else if (strcmp(ch,"OUT")==0) { int a; scanf("%d",&a); if (a==1) { if(x.empty()) printf("EMPTY\n"); else { printf("%d\n",x.top().no);//加上要输出的确定值 输出x.top()不对··· 因为不确定输出的值 x.pop(); } } else if (a==2) { if (y.empty()) printf("EMPTY\n"); else { printf("%d\n",y.top().no); y.pop(); } } else if(a==3) { if (z.empty()) printf("EMPTY\n"); else { printf("%d\n",z.top().no); z.pop(); } } }}}return 0;}
现在是自我反省时间:
天姐说的对 QAQ 不能就是看教程····这道题又是这样,做题提交的代码跟ac的代码差不多···主要是差在输出的时候了 (´Д`) 只能说我又卖的一手好萌··不对 我觉得我应该接受治疗了 (´Д`) 在输出的时候 如果直接printf("%d\n",z.top());这样 code blocks不会报错·· 而且样例也能过·但是交了就会ce··
“输出的时候你得给人家指明你要输出的是哪个值啊 (* ̄(エ) ̄) ” 这样的经验get√
所以这次反省的重点就是优先队列输出的时候一定要指明要输出的变量(估计会犯这么二逼错误的人也就我一个吧 我去死了 QAQ 人生好累)
0 0
- hd 1873 看病要排队——我应该排队看看脑子了
- 看病要排队hd 1873
- 【HD 1873】看病要排队
- 1873 看病要排队
- 1873 看病要排队
- hd 1873 看病要排队(队列优先)
- hdu 1873 看病要排队
- 题目1873: 看病要排队
- hdu 1873 看病要排队
- hdu 1873(看病要排队)
- HDU 1873 看病要排队
- hdu 1873 看病要排队
- HDU 1873 看病要排队
- HDU 1873看病要排队
- hdu 1873 看病要排队
- HDU 1873 看病要排队
- HDU-1873-看病要排队
- HDU 1873 看病要排队
- UITableView 去除多余的分割线
- UVa10817 Headmaster's Headache
- Ubuntu Linux中vsFTP添加用户
- ZOJ1619
- 分享个百度员工离职总结:如何做个好员工(受益匪浅)
- hd 1873 看病要排队——我应该排队看看脑子了
- 变量传值方式
- 机房收费系统之组合查询
- GitHub优秀的Android 开源项目(一)
- numpy的学习心得
- oracle CAST, ROUND, CELL, TRUNC
- Android笔记2—处理点击事件的几种方法
- 项目与文档【3002】PJM随谈-痛彻思痛之项目管理
- TC2007数据表