UVA 6440 Emergency Handling 队列

原创 2014年08月11日 21:27:06

一家医院比较繁忙,病人需要排队,病人有个病重程度,给出病人在送来的初始病重程度和送来的时间以及随时间恶化的程度,每次接待病人接待病重程度最高的,相同就接待随时间恶化程度比较严重的。

直接用优先队列模拟就可以了,priority_queue<int>q[110];把随时恶化程度对应的病人push进对应相应的相应的队列,根据每一次输入的字符是S或是A选择是压进队列还是从所有队列中挑选出最符合的病人出队并输出。

#include <iostream>
#include <cstdio>
#include <cstring>
#include <cmath>
#include <queue>
#include <algorithm>
#include <cstdlib>
#include <iomanip>
#define inf (1<<29)
using namespace std;
int	n;
int t0,r,a;
char s[2];
int maxv;
int st;
priority_queue<int>q[110];
int main()
{
	int t;
	int k=1;
	scanf("%d",&t);
	while(t--)
	{
		scanf("%d",&n);
		j=0;
		for(int i=0;i<110;i++)
		{
			while(!q[i].empty())
			{
				q[i].pop();
			}
		}
		printf("Case #%d:\n",k++);
		while(n--)
		{
			scanf("%s",s);
			if(s[0]=='A')
			{
				scanf("%d",&a);
				int p=-1;
				maxv=-1;
				for(int i=0;i<110;i++)
				{
					if(!q[i].empty())
					{
						if(maxv<=q[i].top()+(a*i))
                         {
                             maxv=q[i].top()+(a*i);
                             p=i;
                         }
					}
				}
				q[p].pop();
				printf("%d %d\n",maxv,p);
			}
			else
			{
				scanf("%d%d%d",&t0,&st,&r);
				st-=t0*r;
				q[r].push(st);
			}
		}
	}
	return 0;
}


相关文章推荐

UVALive 6440 Emergency Handling 优先队列

题目连接:https://icpcarchive.ecs.baylor.edu/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&...

UvaLive 6440 - Emergency Handling(数据结构)

题目链接 UvaLive 6440 - Emergency Handling 题意

UVA 11234 Expressions(数据结构,二叉树,栈,队列)

http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&category=103&page=show_problem&...

UVA 10901 Ferry Loading III 队列模拟

题目链接:http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=...

Beijing 2004 / UVa 1203 / UVALive 3135 / ZOJ 2212 Argus (优先队列)

Argus Time Limit: 2 Seconds      Memory Limit: 65536 KB A data stream is a real-time, continuous, ...

UVa 210 Concurrency Simulator(双端队列)

题意  模拟程序并行运行   STL队列 双端队列 的应用  用双端队列维护即将执行的程序  再用个队列维护等待变量释放的程序   用lock表示变量锁定状态 先将所有程序放到执行队列中  每次取出队...
  • acvay
  • acvay
  • 2015年01月23日 13:16
  • 3515

UVa 10047 - The Monocycle 优先队列+BFS

A monocycle is a cycle that runs on one wheel and the one we will be considering is a bit more speci...
  • FTQOOO
  • FTQOOO
  • 2016年04月15日 17:59
  • 181

UVA 11997 K Smallest Sums(优先队列)

题目链接:https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem...

UVA - 210 - Concurrency Simulator <双端队列>

Concurrency Simulator  Programs executed concurrently on a uniprocessor system appear t...
  • kun768
  • kun768
  • 2015年01月26日 21:49
  • 975

UVA live - 4327(滑动队列优化dp)

方法同上题, 对于每一层而言 d[ i ][ j ] 的最优解为max(d[I-1 ][j] , L(I,j),R(i,j)); 其中L(i,j)代表从i,j往左走若干位置的最优解。 在这里只讨...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:UVA 6440 Emergency Handling 队列
举报原因:
原因补充:

(最多只允许输入30个字)