http://poj.org/problem?id=2259

队列是一种先进先出的数据结构。它只允许在表的前端(front)进行删除操作,而在表的后端(rear)进行插入操作。进行插入操作的端称作队尾,进行删除操作的前段称作队首。队列中没有元素时,称作空队列。

题目大意:在组队队列中,每个元素(element)属于一支队伍。如果一个元素将要进入组队队列时,它会先从头到尾先检查他的队友(同属一支队伍)是否已经在队列中,如果找到了,他就会紧随其后进入队伍。如果没有找到,则他会从队列末尾入队,并成为自己队伍的第一个元素。出队操作则跟普通队列一样:元素在组队队列中按从头到尾的顺序出列。

假设现在有n个队伍,就开n个队列,其中q[i]表示第i个队列;另外再开一个队列qq记录team前后的信息。

#include <cstdio>
#include <cstring>
#include <iostream>
#include <algorithm>
#include <vector>
#include <set>
#include <map>
#include <cmath>
#include <queue>
using namespace std;
template <class T> void checkmin(T &t,T x) {if(x < t) t = x;}
template <class T> void checkmax(T &t,T x) {if(x > t) t = x;}
template <class T> void _checkmin(T &t,T x) {if(t==-1) t = x; if(x < t) t = x;}
template <class T> void _checkmax(T &t,T x) {if(t==-1) t = x; if(x > t) t = x;}
typedef pair <int,int> PII;
typedef pair <double,double> PDD;
typedef long long ll;
#define foreach(it,v) for(__typeof((v).begin()) it = (v).begin(); it != (v).end ; it ++)
queue <int> q[1010];
queue <int> qq;
char od[22];
int belong[1000100];
int cntq[1010];
int main() {int n , cas = 1;while(~scanf("%d",&n) && n) {printf("Scenario #%d\n" , cas ++);for(int i=0;i<n;i++) while(!q[i].empty()) q[i].pop();while(!qq.empty()) qq.pop();for(int i=0;i<n;i++) {int m;scanf("%d",&m);while(m --) {int a;scanf("%d",&a);belong[a] = i;}cntq[i] = 0;}while(scanf("%s",od) && od[0] != 'S') {if(od[0] == 'E') {int a , b;scanf("%d",&a);b = belong[a];q[b].push(a);if(cntq[b] == 0) qq.push(b);cntq[b] ++;}else {int a = qq.front();cntq[a] --;if(cntq[a] == 0) qq.pop();int b = q[a].front();printf("%d\n",b);q[a].pop();}}/*while(!qq.empty()) {int a = qq.front();qq.pop();int b = q[a].front();q[a].pop();}*/puts("");}return 0;
}

转载于:https://www.cnblogs.com/aiiYuu/archive/2013/04/07/3003311.html

Poj2259 Team Queue 【队列】相关推荐

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

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

  2. 540 - Team Queue

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

  3. HDU1387 Team Queue

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

  4. python线性表和队列_[笔记]python数据结构之线性表:linkedlist链表,stack栈,queue队列...

    python数据结构之线性表 python内置了很多高级数据结构,list,dict,tuple,string,set等,在使用的时候十分舒心.但是,如果从一个初学者的角度利用python学习数据结构 ...

  5. python 进程间通信效率_Python进程间通信 multiProcessing Queue队列实现详解

    一.进程间通信 IPC(Inter-Process Communication) IPC机制:实现进程之间通讯 管道:pipe 基于共享的内存空间 队列:pipe+锁的概念--->queue 二 ...

  6. 【C++ 语言】容器 ( queue 队列 | stack 栈 | priority_queue 优先级队列 | set 集合 | 容器遍历 | map )

    文章目录 queue 队列 stack 栈 priority_queue 优先级队列 priority_queue 优先级队列指定排序方法 priority_queue 优先级队列排序行为 prior ...

  7. java集合类——Stack栈类与Queue队列

    今日走读代码时,遇到stack栈类,特查看java的API文档,总结如下: Stack继承Vector类,它通过五个操作对类 Vector 进行了扩展. 栈是 后进先出的. 栈提供了通常的 push ...

  8. 在laravel5 中使用queue队列

    如何在laravel5 中使用queue队列 Laravel Queue是延迟处理应用程序中耗时任务的有效方法.此类任务的示例可能包括每当新用户在您的应用程序中注册或通过社交媒体分享帖子时发送验证电子 ...

  9. C语言实现queue队列的算法(附完整源码)

    C语言实现queue队列的算法 C语言实现queue队列的算法完整源码(定义,实现,main函数测试) C语言实现queue队列的算法完整源码(定义,实现,main函数测试) #ifndef QUEU ...

最新文章

  1. 彩色圆圈的html代码,HTML5 Canvas彩色圆点粒子飘动动画特效
  2. 在IIS7上部署aspx网站
  3. discuz mysql_搭建Discuz! (mysql+apache+Discuz! )
  4. 人工智能AI实战100讲(二)-自动驾驶传感器之激光雷达(二)激光雷达配置车型介绍
  5. 【精彩实况】第三届大数据科学与工程国际会议
  6. SSM运行异常 org.springframework.beans.factory.UnsatisfiedDependencyException
  7. Python实现本机网络流量监视器
  8. 我是学渣,但是我零基础自学web前端成功了
  9. rabbitmq docker
  10. Java中的枚举(Enumeration)
  11. mysql 查询索引
  12. java邮箱和手机发送链接和验证码_java发送邮箱验证码
  13. 自动生成PDF的书签目录
  14. 贪吃蛇小游戏程序(C语言)
  15. 笔记本风扇噪音太大,最简单操作风扇降噪
  16. 计算机快速换界面,老板来了?这些好用的Windows快捷键让你一秒切换操作界面!-页面设置快捷键...
  17. Nessus插件离线下载
  18. 自动驾驶两大路线对决,渐进式玩家为何更容易得人心?
  19. conda install报错 ValueError: check_hostname requires server_hostname
  20. 内存淘汰策略 删除策略

热门文章

  1. 15款Cocos2d-x游戏源码 1
  2. python数组切片赋值_基于numpy中数组元素的切片复制方法
  3. oracle运维dba面试题,一份DBA面试题目---亲身经历
  4. destoon php文件,Destoon模板制作简明教程
  5. 错误 对‘pcl::console::print(pcl::console::VERBOSITY_LEVEL, char const*, ...)’未定义的引用
  6. Collection 属性ArrayList.add方法内部调用过程
  7. mysql 岩机_mysql数据库基本应用
  8. 剑指offer面试题22. 链表中倒数第k个节点(链表)
  9. Win10 64位+VS2015+OpenCV3.4.2重编译
  10. matlab知识集锦