题目大意:

不同的人在不同的队伍里,插入链表的时候假设这个链表里有他的队友,就把它放到最后一个队友的最后。假设没有队友,就把它放到整个链表的最后面。

出链表的时候把第一个人拿出来。

思路分析:

要模拟这个链表就要记录这整个链表中的队伍存在的情况。

所以要再开一个链表的头指针和尾指针,在整个大的链表中再模拟小区域的链表。

然后就是deque部分,也就是注意head的推断以及更新。

#include <cstdio>
#include <iostream>
#include <algorithm>
#include <cstring>
#include <queue>
#include <map>
#define maxn 222222
using namespace std; struct node
{
int data,next,front;
}list[maxn];
int head[1111];
int tail[1111];
int vis[1111111];
int quenext[1111111];
int listhead;
int listtail; void print()
{
int x=listhead;
while(x)
{
printf("%d->",list[x].data);
x=list[x].next;
}
puts("");
}
int main()
{
int n;
int CASE=1;
while(scanf("%d",&n)!=EOF && n)
{
memset(vis,0,sizeof vis);
for(int i=1;i<=n;i++)
{
int t;
scanf("%d",&t);
for(int j=0;j<t;j++)
{
int a;
scanf("%d",&a);
vis[a]=i;
}
} int num=0;
listhead=1;
listtail=1; memset(head,0,sizeof head);
memset(quenext,0,sizeof quenext);
memset(tail,0,sizeof tail); char str[11];
printf("Scenario #%d\n",CASE++); while(scanf("%s",str)!=EOF && str[0]!='S')
{
if(str[0]=='E')
{
int a;
scanf("%d",&a);
int belong=vis[a]; //printf("---%d\n",head[belong]); if(!head[belong])
{
list[listtail].next=++num;
listtail=num;
list[listtail].next=0;
list[num].data=a;
head[belong]=tail[belong]=num;
// print();
continue;
} list[++num].next=list[tail[belong]].next;
list[num].data=a;
list[tail[belong]].next=num; if(tail[belong]==listtail)listtail=num; quenext[tail[belong]]=num;
tail[belong]=num;
}
else
{
int cur=listhead;
listhead=list[listhead].next;
int belong=vis[list[cur].data];
printf("%d\n",list[cur].data);
head[belong]=quenext[cur];
}
// print();
}
puts("");
}
return 0;
}

hdu 1387 Team Queue (链表)的更多相关文章

  1. HDU 1387 Team Queue( 单向链表 )

    Team Queue Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total ...

  2. HDU 1387 Team Queue

    Team Queue Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total ...

  3. Team Queue(STL练习题)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1387 Team Queue Time Limit: 2000/1000 MS (Java/Others ...

  4. hdu 1387(Team Queue) STL

    Team Queue Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total ...

  5. Team Queue (HDU:1387)

    Queues and Priority Queues are data structures which are known to most computer scientists. The Team ...

  6. Team Queue (uva540 队列模拟)

    Team Queue Queues and Priority Queues are data structures which are known to most computer scientist ...

  7. ACM题目————Team Queue

    Queues and Priority Queues are data structures which are known to most computer scientists. The Team ...

  8. Team Queue

    Team Queue Time Limit: 2000MS   Memory Limit: 65536K Total Submissions: 2471   Accepted: 926 Descrip ...

  9. Team Queue(多队列技巧处理)

    Team Queue Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total ...

随机推荐

  1. Gradle构建Java Web应用:Servlet依赖与Tomcat插件(转)

    Gradle的官方tutorial介绍了构建Java Web应用的基本方法.不过在使用Servlet做上传的时候会碰到问题.这里分享下如何通过Servlet上传文件,以及如何使用Gradle来构建相应 ...

  2. yii_wiki_145_yii-cjuidialog-for-create-new-model (通过CJuiDialog来创建新的Model)

    /**** CJuiDialog for create new model http://www.yiiframework.com/wiki/145/cjuidialog-for-create-new ...

  3. 模式匹配KMP

    字符串朴素模式匹配算法的2种实现: //1.朴素的模式匹配算法,用while实现 int StrStr_While(const char* pStr, const char* pSub, int* p ...

  4. W5100使用中的常见问题

    来自:成都浩然 越来越多的嵌入式网络系统project师喜欢上了W5100,它集TCP/IP协议栈.以太网的MAC和PHY一体,不仅使系统性能得到非常大的提升,也给产品开发工作带来极大的方便.随着W5 ...

  5. C#中结构与类的区别

    一.类与结构的示例比较: 结构示例: public struct Person { string Name; int height; int weight public bool overWeight ...

  6. JVM --需要知道的一些术语

    1. Java堆中各代分布: Young:主要是用来存放新生的对象. Old:主要存放应用程序中生命周期长的内存对象. Permanent:是指内存的永久保存区域,主要存放Class和Meta的信息, ...

  7. docker学习笔记1:docke环境的查看

    本文的操作是在ubuntu操作系统下的. 一.环境检查 当登录一个安装了docker的机器后,首先我们要检查下docker环境如何. 1.命令:docker -v 上述命令返回安装的docker的版本 ...

  8. asp.net 通过 Handler 导出数据至excel (让用户下载)

    效果图: 代码: Export2Excel.ashx <%@ WebHandler Language="C#" CodeBehind="Export2Excel.a ...

  9. CSS简介和CSS选择器

    <pre name="code" class="html">Css 简洁 css 选择器 标签选择器 类选择器 ID选择器 Css 层叠样式表 Ca ...

  10. 基于visual Studio2013解决算法导论之005原地随机排列数组

     题目 原地随机排列数组 解决代码及点评 #include <stdio.h> #include <stdlib.h> #include <malloc.h> ...