题目传送门

题意:先给出一些小组成员,然后开始排队。若前面的人中有相同小组的人的话,直接插队排在同小组的最后一个,否则只能排在最后面。现在有排队和出队的操作。

分析:这题关键是将队列按照组数分组,用另外一个队列保存组的序号,当该组里没有人了才换下一组。很好的一道题。

收获:队列的灵活运用

代码:

/************************************************
* Author        :Running_Time
* Created Time  :2015/9/9 星期三 14:37:14
* File Name     :M.cpp************************************************/#include <cstdio>
#include <algorithm>
#include <iostream>
#include <sstream>
#include <cstring>
#include <cmath>
#include <string>
#include <vector>
#include <queue>
#include <deque>
#include <stack>
#include <list>
#include <map>
#include <set>
#include <bitset>
#include <cstdlib>
#include <ctime>
using namespace std;#define lson l, mid, rt << 1
#define rson mid + 1, r, rt << 1 | 1
typedef long long ll;
const int N = 1e3 + 10;
const int INF = 0x3f3f3f3f;
const int MOD = 1e9 + 7;
queue<int> id;
queue<int> num[N];
map<int, int> mp;
bool inq[N];
char op[11];
int n;void init(void) {while (!id.empty ())    id.pop ();for (int i=1; i<=n; ++i)    {while (!num[i].empty ())   num[i].pop ();}memset (inq, false, sizeof (inq));mp.clear ();
}int main(void)    {int cas = 0;while (scanf ("%d", &n) == 1)   {if (!n) break;init ();if (cas)    puts ("");printf ("Scenario #%d\n", ++cas);int x;for (int i=1; i<=n; ++i)    {int m;  scanf ("%d", &m);for (int j=1; j<=m; ++j)    {scanf ("%d", &x);mp[x] = i;}}scanf ("%s", &op);while (strcmp (op, "STOP")) {if (strcmp (op, "ENQUEUE") == 0)    {scanf ("%d", &x);if (!inq[mp[x]])    {inq[mp[x]] = true;id.push (mp[x]);}num[mp[x]].push (x);}else    {if (id.empty ())    continue;int fir = id.front ();printf ("%d\n", num[fir].front ()); num[fir].pop ();if (num[fir].empty ())  {inq[fir] = false;   id.pop ();}}scanf ("%s", &op);}}return 0;
}

  

转载于:https://www.cnblogs.com/Running-Time/p/4795710.html

queue POJ 2259 Team Queue相关推荐

  1. POJ 2259 team queue团队排队问题

    题目链接: http://poj.org/problem?id=2259 题目大意: 告诉你一堆人(m个人是一组的,n个人是一组的....):然后一个人来排队了,先看下有自己组的熟人吗?有的话直接排在 ...

  2. 【队列】Team Queue(luogu-UVA540/poj 2259)

    Team Queue luogu-UVA540 poj 2259 题目大意: 有n个小组的人要排队,每个小组中有若干个人,当一个人入队时,如果队中有自己小组的人就跟在此人后面,否则站在队尾,现在给出一 ...

  3. Poj2259 Team Queue 【队列】

    http://poj.org/problem?id=2259 队列是一种先进先出的数据结构.它只允许在表的前端(front)进行删除操作,而在表的后端(rear)进行插入操作.进行插入操作的端称作队尾 ...

  4. 540 - Team Queue

    Team Queue PS:因为该题排版较麻烦,这里给出OJ网址:UVa540 - Team Queue 有t个团队的人正在排一个长队.每次新来一个人时,如果他有队友在排队,那么这个新人会插队到最后一 ...

  5. UVA 540 Team Queue

    题目链接:https://vjudge.net/problem/UVA-540 题目翻译摘自<算法禁赛入门经典> 题目大意 有 t 个团队的人正在排一个长队.每次新来一个人时,如果他有队友 ...

  6. HDU1387 Team Queue

    题目描述: Problem Description Queues and Priority Queues are data structures which are known to most com ...

  7. c++ STL:队列queue、优先队列priority queue 的使用

    说明:本文全文转载而来,原文链接:http://www.cppblog.com/wanghaiguang/archive/2012/06/05/177644.html C++ Queues(队列) C ...

  8. module 'queue' has no attribute 'Queue'解决

    import queue q = queue.Queue() q.put('a') q.put('b') print(q.get())错误: AttributeError: module 'queue ...

  9. python queue的用法_python Queue模块使用

    Python中,队列是线程间最常用的交换数据的形式.Queue模块是提供队列操作的模块,虽然简单易用,但是不小心的话,还是会出现一些意外. 创建一个"队列"对象 import Qu ...

最新文章

  1. java序列化和RMI
  2. linux能安装音乐软件吗,Linux上如何安装使用音乐软件SoundCloud
  3. SqlServer2000日志文件过大问题处理
  4. 身为程序员,你接过最奇葩的需求是什么?丨Q言Q语
  5. 2021 icme_重磅 | 2021年U.S. News 全美院校排名发布,疫情之下,排名大洗牌?!
  6. 等待因该出现在while循环中,防止虚假唤醒
  7. 统计学习方法概论---分类问题
  8. PHP大数据处理【转】
  9. spring cloud consul整合
  10. 谷歌、微软、OpenAI等巨头七大机器学习开源项目 看这篇就够了
  11. SQL Server:关键字搜索
  12. NLP --- 文本分类(基于SVD的隐语意分析(LSA))
  13. Java创建Zip文件示例
  14. YUV、RGB、RAW DATA 3种Sensor输出格式 详解
  15. faststone image viewer64位 v6.6
  16. 听说这是互联网时代100本必读书单,你看过几本?
  17. 传智播客asp.net基础视频免费分享
  18. 如何修改BOOT.INI启动项,添加一个D盘的启动系统上去?
  19. Qt之Cannot retrieve debugging output.
  20. pop3服务器协议初始化失败,邮件的发送和接收故障处理的几点方法

热门文章

  1. ITK:获取PointSet的边界框
  2. OpenCV创建小部件Creating Widgets
  3. OpenCV背景扣除Background Subtraction
  4. OpenCV Sobel Derivatives衍生物
  5. C语言在二进制搜索树中查找键的successor and predecessor后继和前任(附完整源码)
  6. OpenGL Texture Coordinates纹理坐标的实例
  7. unity 解决乱码_Unity3d中IOS应用出现乱码怎么办?
  8. cad版本在线转换_一套某中学的弱电系统拓扑设计方案(CAD版本)
  9. PDF转Word的免费方法
  10. 「Apollo」class DescriptorBase(metaclass=DescriptorMetaclass)