题目描述

有t个团队的人正在排一个长队。每次新来一个人时,如果他有队友在排队,那么新人会插队到最后一个队友的身后。如果没有任何一个队友排队,则他会被排到长队的队尾。

输入每个团队中所有队员的编号,要求支持如下3中指令:

ENQUEUE x:编号为x的人进入长队

DEQUEUE:长队的队首出队

STOP:停止模拟

对于每个DEQUEUE指令,输出出队的人的编号

样例输入

2

3 101 102 103

3 201 202 203

ENQUEUE 101

ENQUEUE 201

ENQUEUE

102

ENQUEUE 202

ENQUEUE 103

ENQUEUE

203

DEQUEUE

DEQUEUE

DEQUEUE

DEQUEUE

DEQUEUE

DEQUEUE

STOP

2

5

259001 259002 259003 259004 259005

6 260001 260002 260003 260004 260005

260006

ENQUEUE 259001

ENQUEUE 260001

ENQUEUE 259002

ENQUEUE

259003

ENQUEUE 259004

ENQUEUE 259005

DEQUEUE

DEQUEUE

ENQUEUE

260002

ENQUEUE

260003

DEQUEUE

DEQUEUE

DEQUEUE

DEQUEUE

STOP

0

样例输出

Scenario #1

101

102

103

201

202

203

Scenario #2

259001

259002

259003

259004

259005

260001

#define LOCAL
#include<iostream>
#include<cstdio>
#include<map>
#include<queue>
#include<string> using namespace std; const int maxn=100; int main(){
#ifdef LOCAL
freopen("data.in","r",stdin);
freopen("data.out","w",stdout);
#endif //!1.记录所有人的团队编号,从0开始
int t;//共有t个团队
int kase=0;
while(scanf("%d",&t) == 1 && t>0){
map<int,int> team;
cout<<"Scenario #"<<++kase<<endl;
for(int i=0;i<t;i++){//第i个团队
//有n个人
int n;
cin>>n;
int code;
while(n--){scanf("%d",&code);team[code]=i;}
} //!2.模拟
queue<int> q,q2[maxn];
while(1){
int x;
string cmd;
cin>>cmd;
if(cmd[0] == 'S')break;
else if(cmd[0] == 'D'){
x=q.front();
cout<<q2[x].front()<<endl;
q2[x].pop();
if(q2[x].empty())q.pop();
}
else if(cmd[0] == 'E'){
cin>>x;
int t=team[x];
if(q2[t].empty())q.push(t);
q2[t].push(x);
}
}
cout<<endl;
}
return 0;
}

团体队列 UVA540 Team Queue的更多相关文章

  1. 团体队列UVA540 Team Queue(队列简单用法)

    题目背景 队列和优先级队列是大多数计算机科学家都知道的数据结构.但是团队队列却不被人熟知,尽管在生活中经常出现.比如,午餐时间的食堂门口的队列就是一个团队队列.在一个团队队列中,每个元素属于一个团队. ...

  2. UVA540 Team Queue——题解 by hyl天梦

    UVA540 Team Queue 题解 题目描述:题目原题 https://vjudge.net/problem/UVA-540 Queues and Priority Queues are dat ...

  3. ACM学习历程——UVA540 Team Queue(队列,map:Hash)

    Description   Team Queue   Team Queue  Queues and Priority Queues are data structures which are know ...

  4. UVa540 Team Queue(队列queue)

    队列 STL队列定义在头文件<queue>中, 用“ queue<int>s ” 方式定义, 用push()和pop()进行元素的入队和出队操作, front()取队首元素(但 ...

  5. uva540 Team Queue by sixleaves

    这道题目.主要是对队列的灵活应用.其实就是一道模拟题目,只要你洞察出题目的本质就十分简单.题目意思大体是有多组测试数据,每组的一开始是一个数字t,代表一共有多少的团队,接着是t行输入,每一行都由一个数 ...

  6. UVa540 Team Queue

    // 题意:有t个团队的人在排队.每次来了一个新人之后,如果他有队友在排队,那么这个新人会插队到队友的身后. // 要求支持三种指令:ENQUEUE x; DEQUEUE(队首出队); STOP.模拟 ...

  7. POJ 2259 Team Queue(队列)

    题目原网址:http://poj.org/problem?id=2259 题目中文翻译: Description 队列和优先级队列是大多数计算机科学家已知的数据结构. 然而,Team Queue并不是 ...

  8. UVa 540 (团体队列) Team Queue

    题意: 每个人都属于一个团体,在排队的时候,如果他所在的团体有人在队伍中,则他会站到这个团体的最后.否则站到整个队伍的队尾. 输出每次出队的人的编号. 分析: 容易看出,长队中,在同一个团体的人是排在 ...

  9. Team Queue (uva540 队列模拟)

    Team Queue Queues and Priority Queues are data structures which are known to most computer scientist ...

随机推荐

  1. python anaconda 安装 环境变量 升级 以及特殊库安装

    Anaconda 是一个旗舰版的python安装包, 因为普通的python没有库, 如果需要安装一些重要的库, 要经常一个一个下载,会非常麻烦. 所以这个一个集成的, 可以手动批量升级的软件. 而且 ...

  2. ERROR:Tried to register widget id ==basemapGalleryDiv but that id is already registered解决办法

    在ArcGIS Server开发中,遇到DIV已经被注册的情况,不能对原DIV内容进行更新.这里需要调用Dojo的destroyRecursive()方法,逐个销毁该Widget下的子元素及其后代元素 ...

  3. GDAL安装和使用

    1.安装 下载源程序包 ,解压,运行以下三条命令 ./configure --prefix=~ make make install

  4. 项目经验:GIS<MapWinGIS>建模第七天

    终天完成了管网地图的附加功能..实现了了管网与地图结合

  5. 如何实现Docker应用的自定义弹性伸缩

    简介 现在有很多客户很关心应用的自动弹性伸缩,有些客户也有自己的监控框架,并希望能跟阿里云容器服务进行集成.阿里云容器服务提供了服务弹性伸缩触发器,并能够跟监控框架集成来实现自定义的服务自动弹性伸缩. ...

  6. Python 2 和Python 3的区别

    print input urlopen print print在版本2的使用方法是: print 'this is version 2' 也可以是 print('this is version 2') ...

  7. SQL Server ->> SQL Server 2016功能改进之 -- Update Statistics

    1) 以前SQL Server更新一张表/索引的间隔是固定的,创建时更新一次,到了500行时更新第二次,接下来就是呈百分比式的间隔去更新,距离数据修改量达到表的行数量的的20%再次触发更新.但是这样的 ...

  8. UVaOJ 694 - The Collatz Sequence

    题目很简单,但是一开始却得到了Time Limit的结果,让人感到很诧异.仔细阅读发现,题目中有一个说明: Neither of these, A or L, is larger than 2,147 ...

  9. MySQL案例之Timestamp和Datetime

    mysql数据库常用的时间类型有timestamp和datetime,两者主要区别是占用存储空间长度不一致.可存储的时间也有限制,但针对不同版本下,timestamp字段类型的设置需要慎重,因为不注意 ...

  10. VS断点不生效

    工程属性页中“配置属性”->“C/C++”->“常规”->“调试信息格式”,选择“用于“编辑并继承”的程序数据库(/ZI)”. 在“配置属性”->“链接器”->“调试”- ...