POJ - 2259 Team Queue (队列)
题目链接
https://vjudge.net/problem/POJ-2259
题解
在任何时刻,同一个小组的人只要来到了队伍,就会站在一起,所以我们建立一个队列q0存储队伍中所有小组的编号,再为每个小组i建立一个队列qi存储队伍中这个小组的所有成员,一共n+1个队列。
当一个编号为X,组号为Y的人来到队伍时,我们直接把X插入到qY的队尾,。如果在插入之前qY是空的,则还要把Y插入到q0末尾,表明队伍最后出现了一个新的小组。
当接受出队指令时,我们通过q0得知排在最前边的小组组号为Y,然后再把qY的队头出队。出队后qY为空,就从q0开头删除Y,表明这个小组目前所有人都离开。
这道题是多组输入,如果队列定义的是全局变量,每次都要把队列清空,c++的queue没有清空队列的函数,需要自己手动清空。 或者定义成局部变量就不用清空了。
#include<bits/stdc++.h>
using namespace std;
int id[1000010];
queue<int>Q, q[1010];
int main() {
//freopen("in.txt", "r", stdin);
ios::sync_with_stdio(false), cin.tie(0);
int n, k = 0;
while (1) {
int m, x;
Q = queue<int>();//初始化
cin >> n; if (!n)break;
for (int i = 1; i <= n; ++i) {
cin >> m;
for (int j = 1; j <= m; ++j)
cin >> x, id[x] = i;
q[i] = queue<int>();
}
printf("Scenario #%d\n", ++k);
string s;
while (1) {
cin >> s;
if (s[0] == 'S')break;
if (s[0] == 'E') {
cin >> x; if (!q[id[x]].size())Q.push(id[x]);
q[id[x]].push(x);
}
else if (s[0] == 'D') {
int idd = Q.front();
printf("%d\n", q[idd].front());
q[idd].pop();
if (q[idd].empty())Q.pop();
}
}
printf("\n");
}
}
POJ - 2259 Team Queue (队列)的更多相关文章
- POJ 2259 - Team Queue - [队列的邻接表]
题目链接:http://poj.org/problem?id=2259 Queues and Priority Queues are data structures which are known t ...
- POJ 2259 Team Queue(队列)
题目原网址:http://poj.org/problem?id=2259 题目中文翻译: Description 队列和优先级队列是大多数计算机科学家已知的数据结构. 然而,Team Queue并不是 ...
- (队列的应用5.3.2)POJ 2259 Team Queue(队列数组的使用)
/* * POJ_2259.cpp * * Created on: 2013年10月30日 * Author: Administrator */ #include <iostream> # ...
- poj 2259 Team Queue
Team Queue Time Limit: 2000MS Memory Limit: 65536K Total Submissions: 2977 Accepted: 1092 Descri ...
- queue POJ 2259 Team Queue
题目传送门 题意:先给出一些小组成员,然后开始排队.若前面的人中有相同小组的人的话,直接插队排在同小组的最后一个,否则只能排在最后面.现在有排队和出队的操作. 分析:这题关键是将队列按照组数分组,用另 ...
- UVA.540 Team Queue (队列)
UVA.540 Team Queue (队列) 题意分析 有t个团队正在排队,每次来一个新人的时候,他可以插入到他最后一个队友的身后,如果没有他的队友,那么他只能插入到队伍的最后.题目中包含以下操作: ...
- 团体队列UVA540 Team Queue(队列简单用法)
题目背景 队列和优先级队列是大多数计算机科学家都知道的数据结构.但是团队队列却不被人熟知,尽管在生活中经常出现.比如,午餐时间的食堂门口的队列就是一个团队队列.在一个团队队列中,每个元素属于一个团队. ...
- [POJ2259]Team Queue (队列,模拟)
2559是栈,2259是队列,真的是巧啊 题意 模拟队列 思路 水题 代码 因为太水,不想打,发博客只是为了与2559照应,于是附上lyd的std #include <queue> #in ...
- POJ 3125 Printer Queue(队列,水题)
题意:有多组数据,每组数据给出n,m,n表示需要打印的文件个数,m表示要打印的目标位置(m为0~n-1). 接下来给出n个数,第i个值对应第i-1个位置的优先级大小. 打印规则如下: ...
- Team Queue POJ - 2259 (队列)
Queues and Priority Queues are data structures which are known to most computer scientists. The Team ...
随机推荐
- 提升效率,打通万里牛ERP与下游用友U8财务软件的无缝对接
一.对接流程 1.1 销售/售后流程 在万里牛订单出库后,通过轻易云数据集成平台将数据推送至用友U8销售订单和销售出库单,这些单据可以进行关联操作. 当万里牛售后单完成退货入库后,通过数据集成平台将数 ...
- 【Javaweb】六-servlet层
AdminServlet.jap @WebServlet("/AdminServlet") public class AdminServlet extends HttpServle ...
- windows中MySQL忘记密码
前言: 一直都是连接公司项目数据库,许久未连接本地的数据库,密码忘记了 步骤: 进入本机安装mysql的bin目录下 暂停mysql服务 net stop mysql 设置跳过密码授权登录 my ...
- 从0开始用Maven
一.Maven的介绍即相关概念 Maven是一款构建和管理Java项目的工具,它将项目开发和管理过程抽象成一个项目对象模型(POM),提供了一种统一的项目结构. Maven官网 1.为什么使用Mave ...
- Tainted canvases may not be exported,视频帧截图跨域
做原生相机拍照的时候遇见的有趣问题,视频流是上传到云服务器的在线链接,赋值到video的src上,然后使用canvas的drawImg方法去截取视频帧做照片,结果canvas报错视频跨域. 解决方案: ...
- 虚拟机运行Hadoop | 各种问题解决的心路历程
ps:完成大数据技术实验报告的过程,出项各种稀奇古怪的问题.(知道这叫什么吗?经济基础决定上层建筑,我当时配置可能留下了一堆隐患,总之如果有同样的问题,希望可以帮到你) 一.虚拟机网络连接不通的各种情 ...
- java-导出pdf
前言: 纯代码画pdf格式 <!-- iText PDF --> <dependency> <groupId>com.itextpdf</groupId& ...
- python 获取android 应用使用情况
python 获取android 应用使用情况 本文主要讲述python 脚本获取android 应用使用情况. 主要思路:使用adb 获取当前activity ,1s 一次输出. 主要涉及知识点: ...
- vscode下载
vscode下载 想下载官网可以直接去官网下载(速度超慢~) 百度网盘链接: 链接:https://pan.baidu.com/s/14DfWI5b2HA_J_kHBcu8JQw?pwd=yyds 提 ...
- shiro基于角色URL进行鉴权
前言 shiro基于URL进行鉴权,网上有很多,但是多数都是copy不排版,眼睛都看花了,还不如自己看看源码. 2021年1月14日21:23:49最新的shiro是1.7,使用时发现了首次访问的一个 ...