UVa540
//先输入队伍的个数
//用map建立数组将队伍序号和个人序号相互对应
//三条命令 #include <bits/stdc++.h>
using namespace std;
const int maxn=; int main()
{
int t,kase=;
while(cin>>t && t)
{
cout<<"Scenario "<<"#"<<++kase<<endl; map <int,int> team;
for(int i=;i<=t;i++)
{
int n,x;
cin>>n;//队伍中人的个数
while(n--)
{
cin>>x;
team[x]=i;//队员x在i(t)的队伍中
}
} queue<int> q,q2[maxn];
for(;;)
{
int x;
string cmd;
cin>>cmd;
if(cmd[]=='S')//STOP命令,停止模拟
break;
else if(cmd[]=='D')
{
int t=q.front();//第一个队伍的编号
cout<<q2[t].front()<<endl;
q2[t].pop();//输出并离队
if(q2[t].empty())
q.pop();//t队中的队员全部出队,移除队伍
}
else if(cmd[]=='E')
{
cin>>x;
int t=team[x];//队伍编号
if(q2[t].empty())
q.push(t);
q2[t].push(x);
}
}
cout<<endl;
}
return ;
}
代码基本直接搬的紫书,初次接触了map和queue,简单写一下map和queue的使用笔记
queue的头文件是<queue>
基本操作有:
back()返回最后一个元素
empty()队列为空返回真
front()返回第一个元素
pop()删除第一个元素
push()在末尾加入一个元素
size()返回队列中的元素个数
此题定义了两个队列,第一个用来记录队伍,第二个用来记录对位内的成员
map当成了数组来用,头文件<map>
map的输出跟set挺像的
cout<<iter->first<<" "<<iter->second<<endl;
iter->first 输出的第一个
iter->second 输出的第二个
UVa540的更多相关文章
- UVA540 Team Queue——题解 by hyl天梦
UVA540 Team Queue 题解 题目描述:题目原题 https://vjudge.net/problem/UVA-540 Queues and Priority Queues are dat ...
- Team Queue (uva540 队列模拟)
Team Queue Queues and Priority Queues are data structures which are known to most computer scientist ...
- UVa540 Team Queue
// 题意:有t个团队的人在排队.每次来了一个新人之后,如果他有队友在排队,那么这个新人会插队到队友的身后. // 要求支持三种指令:ENQUEUE x; DEQUEUE(队首出队); STOP.模拟 ...
- uva540 Team Queue by sixleaves
这道题目.主要是对队列的灵活应用.其实就是一道模拟题目,只要你洞察出题目的本质就十分简单.题目意思大体是有多组测试数据,每组的一开始是一个数字t,代表一共有多少的团队,接着是t行输入,每一行都由一个数 ...
- 团体队列UVA540 Team Queue(队列简单用法)
题目背景 队列和优先级队列是大多数计算机科学家都知道的数据结构.但是团队队列却不被人熟知,尽管在生活中经常出现.比如,午餐时间的食堂门口的队列就是一个团队队列.在一个团队队列中,每个元素属于一个团队. ...
- 团体队列(UVa540)
题目具体描述见:https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_prob ...
- 团体队列 UVA540 Team Queue
题目描述 有t个团队的人正在排一个长队.每次新来一个人时,如果他有队友在排队,那么新人会插队到最后一个队友的身后.如果没有任何一个队友排队,则他会被排到长队的队尾. 输入每个团队中所有队员的编号,要求 ...
- ACM学习历程——UVA540 Team Queue(队列,map:Hash)
Description Team Queue Team Queue Queues and Priority Queues are data structures which are know ...
- 算法习题---5.6团体队列(Uva540)
一:题目 有t个队伍的人正在排队,每次新来一个人,如果他有队友在排队,那他可以插队,直接排到他的队伍的末尾.如果没有队伍在前面,那么他直接排在长队的末尾 ENQUEUE x 将编号x的队员入队 DEQ ...
随机推荐
- Android开发 MVP模式的规范记录(个人总结)
前言 首先,这篇文章不在讲解什么是mvp模式,如果需要请自行搜索mvp模式文章了解.这个文章里我只记录mvp模式的创建和mvp各自层的界限.另外这个博客属于个人使用mvp模式后一些经验总结与记录.并不 ...
- xpath 选取指定文本内容可能是多种情况下的语法
url_list = select.xpath("//ul/li/a[contains(text(),'新闻中心' )]/../../li/a/@href | //ul/li/a[conta ...
- linux查看tomcat启动运行日志
1.先切换到:cd tomcat/logs 2.tail -f catalina.out 3.这样运行时就可以实时查看运行日志了
- ReactNative 学习笔记
1. react-native引入第三方库时报Command `run-android` unrecognized: 在使用第三方库tab-navigator时调用: npm install reac ...
- Oracle降低高水位先(转载)
Oracle 降低高水位线的方法 高水位(HIGH WARTER MARK,HWM)好比水库中储水的水位,用于描述数据库中段的扩展方式.高水位对全表扫描方式有着至关重要的影响.当使用DELETE删除 ...
- Django上传文件和上传图片(不刷新页面)
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- windows中,VS2017下,在Cmake中添加OpenCV依赖
OpenCV_DIR -----D:/OpenCV/3.3.0/opencv/build/x64/vc14/lib 只有这个目录 cmake才认..貌似是因为找到了对应的OpenCvConfig.c ...
- [原创] debian 9.3 搭建Jira+Confluence+Bitbucket项目管理工具(四) -- 安装bitbucket 5.7.0
[原创] debian 9.3 搭建Jira+Confluence+Bitbucket项目管理工具(四) -- 安装bitbucket 5.7.0 安装Bitbucket的教程, 网上能找见的不多, ...
- 源码解析之ConcurrentHashmap
ConcurrentHashmap算是我看的集合源码里最难理解的了(当然ConcurrentLinkedList虽然代码少但理解起来也累),在Java1.8版本中DougLea大师巧通过妙地代码把锁粒 ...
- OO第一单元小结
写在前面 在接触OO课程之前,自己是完全没有学习过java语言的,因此作为一名初的不能再初的初学者,无论是在哪方面都会有许多茫然,但是我相信通过一次次认真的完成OO作业,我对面向对象的理解应该会渐渐的 ...