这里插队的意思就是排队时遇到熟人则插到其后,否则排到队尾。(这个习惯不太好)(题意)


  题目要求我们模拟“插队模型”和队列的入队和出队完成此算法。

  由于题目的输入输出很多,此题的查找操作(找到熟人)需要控制到O(1),因此映射每一个人际圈(所属同一队伍的意思)的编号而非每个人就很重要了,可以将不同人际圈的编号依次入队,而非每个人依次入队,这样主队列中的元素就是各人际圈的编号,而将入队的每个人压入到该人际圈,这样一种思想就是标题上所写的"嵌套"队列了(纯属杜撰)。

  具体代码如下:

 //嵌套队列-插队:遇到熟人则插在其后,否则在队尾,按操作输入后输出Dequeue的编号
//Time:141ms Memory:760K
#include<iostream>
#include<cstring>
#include<cstdio>
#include<queue>
using namespace std;
#define MAX 1001
#define MAX_NUM 1000001 //编号
queue<int> team[MAX]; //队伍
queue<int> q; //主队列-保存各队伍入队顺序
bool v_team[MAX]; //队列已入队标记
int ele[MAX_NUM]; //映射:编号-队伍
int main()
{
int n; //队列数
int scenario = ; while (scanf("%d", &n), n)
{
/*Init*/
memset(v_team, false, sizeof(v_team));
for (int i = ; i < n; i++)
while (!team[i].empty()) team[i].pop();
while (!q.empty()) q.pop();
/*Input*/
for (int i = ; i < n; i++)
{
int m; //队员数
scanf("%d", &m);
for (int j = ; j < m; j++)
{
int mem;
scanf("%d", &mem);
ele[mem] = i;
}
}
/*Main*/
char command[];
printf("Scenario #%d\n", ++scenario);
while (scanf("%s", command), strcmp(command, "STOP"))
{
if (!strcmp(command, "ENQUEUE")) //ENQUEUE
{
int mem;
scanf("%d", &mem);
//不存在存在该元素队列
if (!v_team[ele[mem]])
{
v_team[ele[mem]] = true;
q.push(ele[mem]); //压入team number
}
team[ele[mem]].push(mem);
}
else { //DEQUEUE
int mem = team[q.front()].front();
team[q.front()].pop();
if (team[ele[mem]].empty())
{
v_team[ele[mem]] = false;
q.pop(); //抛出team number
}
printf("%d\n", mem);
}
}
printf("\n"); } return ;
}

ACM/ICPC 之 "嵌套"队列 -插队(POJ2259)的更多相关文章

  1. ACM/ICPC 之 优先级队列+设置IO缓存区(TSH OJ-Schedule(任务调度))

    一个裸的优先级队列(最大堆)题,但也有其他普通队列的做法.这道题我做了两天,结果发现是输入输出太过频繁,一直只能A掉55%的数据,其他都是TLE,如果将输入输出的数据放入缓存区,然后满区输出,可以将I ...

  2. 【转】lonekight@xmu·ACM/ICPC 回忆录

    转自:http://hi.baidu.com/ordeder/item/2a342a7fe7cb9e336dc37c89 2009年09月06日 星期日 21:55 初识ACM最早听说ACM/ICPC ...

  3. hduoj 4712 Hamming Distance 2013 ACM/ICPC Asia Regional Online —— Warmup

    http://acm.hdu.edu.cn/showproblem.php?pid=4712 Hamming Distance Time Limit: 6000/3000 MS (Java/Other ...

  4. HDU 5876 Sparse Graph 【补图最短路 BFS】(2016 ACM/ICPC Asia Regional Dalian Online)

    Sparse Graph Time Limit: 4000/2000 MS (Java/Others)    Memory Limit: 262144/262144 K (Java/Others)To ...

  5. 铁轨(rails, ACM/ICPC CERC 1997,Uva 514)

    铁轨(rails, ACM/ICPC CERC 1997,Uva 514) 题目描述 某城市有一个火车站,铁轨铺设如图所示.有n节车厢从A方向驶入车站,按进站顺序编号为1~n.你的任务是让它们按照某种 ...

  6. 2015 ACM/ICPC Asia Regional Changchun Online HDU 5444 Elven Postman【二叉排序树的建树和遍历查找】

    Elven Postman Time Limit: 1500/1000 MS (Java/Others)    Memory Limit: 131072/131072 K (Java/Others)T ...

  7. 2014嘉杰信息杯ACM/ICPC湖南程序设计邀请赛暨第六届湘潭市程序设计竞赛

    比赛链接: http://202.197.224.59/OnlineJudge2/index.php/Contest/problems/contest_id/36 题目来源: 2014嘉杰信息杯ACM ...

  8. ACM/ICPC 之 BFS(离线)+康拓展开(TSH OJ-玩具(Toy))

    祝大家新年快乐,相信在新的一年里一定有我们自己的梦! 这是一个简化的魔板问题,只需输出步骤即可. 玩具(Toy) 描述 ZC神最擅长逻辑推理,一日,他给大家讲述起自己儿时的数字玩具. 该玩具酷似魔方, ...

  9. ACM ICPC 2015 Moscow Subregional Russia, Moscow, Dolgoprudny, October, 18, 2015 G. Garden Gathering

    Problem G. Garden Gathering Input file: standard input Output file: standard output Time limit: 3 se ...

随机推荐

  1. 用svnsync 同步备份 svn 版本库 从一台服务器到另一台服务器

    如用svnsync 同步备份两台机器的svn .(就以linux服务器到windows服务器为例子) 要同步的项目名称:source_svn svn 版本库1 .4 以上 源目录:           ...

  2. ASP.NET MVC Razor语法

    ASP.NET MVC Razor语法 (一) 关于_ViewStart.cshtml文件     使用Razor模板引擎的话,会自动生成一个_ViewStart.cshtml文件.事实上,_View ...

  3. ajax实例详解(2)

    说到ajax当然离不开json格式了.在ajax的数据传递过程中用到最多的便是json格式了吧. 什么是json格式,在刚开始用它的时候,着实让人迷茫了一阵子呀.说的白了点所谓json不就是一种数据的 ...

  4. 安装使用ubuntu和opensuse

    liquid: n.液体, adj. 液体的, 流动的 liquidate: v. 清洗; 清算; 变现; 杀戮; weird: [wi2d] e:i, ir:2 离奇的,古怪的... 英文名称, 直 ...

  5. 理解Memcached的分布式

    Memcached尽管是"分布式"的缓存系统,但是服务器端并没有分布式功能.各个Memcached实例不会相互通信以共享信息,Memcached如何进行分布式完全取决于客户端的实现 ...

  6. acdream1233 Royal Federation (构造?)

    http://acdream.info/problem?pid=1233 Andrew Stankevich's Contest (3) ASC 3 Royal Federation Special ...

  7. Junit初级编码(一)第一个Junit测试程序

    序,Junit测试是单元测试的一个框架,提供了很多方法,供我们快速开展单元测试.目前最新版本JAR包为4.12,官网地址为http://junit.org/ 一.第一个Junit测试程序 1 去官网下 ...

  8. LYDSY模拟赛day3 涂色游戏

    /* 非常好的题 */ #include <cstdio> #include <iostream> #include <cstdlib> #include < ...

  9. 金山毒霸和Chrome浏览器植入脚本导致网页报错

    1 (function(win, undefined) { var SELECTORS = transformSelector; function insertTemplate(callback) { ...

  10. Linux统计文件行数

    语法:wc [选项] 文件… 说明:该命令统计给定文件中的字节数.字数.行数.如果没有给出文件名,则从标准输入读取.wc同时也给出所有指定文件的总统计数.字是由空格字符区分开的最大字符串. 该命令各选 ...