hdu 1387 Team Queue (链表)
来源:互联网 发布:宁武子 邦有道则知出自 编辑:程序博客网 时间:2024/05/16 11:45
题目大意:
不同的人在不同的队伍里,插入链表的时候如果这个链表里有他的队友,就把它放到最后一个队友的最后,如果没有队友,就把它放到整个链表的最后面。
出链表的时候把第一个人拿出来。
思路分析:
要模拟这个链表就要记录这整个链表中的队伍存在的情况。
所以要再开一个链表的头指针和尾指针,在整个大的链表中再模拟小区域的链表。
然后就是deque部分,也就是注意head的判断以及更新。
#include <cstdio>#include <iostream>#include <algorithm>#include <cstring>#include <queue>#include <map>#define maxn 222222using 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;}
0 1
- hdu 1387 Team Queue (链表)
- HDU-1387-Team Queue
- hdu 1387 Team Queue
- HDU 1387 Team Queue
- HDU 1387 Team Queue
- hdu 1387 Team Queue
- Hdu 1387 Team Queue[队列 || 链表]
- HDU 1387 Team Queue(优先队列)
- HDU 1387 Team Queue (嵌套队列)
- HDU 1387 && UVa 540 Team Queue(队列应用)
- hdu 1387 Team Queue 优先队列
- HDU 1387 Team Queue 队列的模拟
- hdu 1387 Team Queue(队列的嵌套)
- HDU - problem 1387 Team Queue【队列】
- HDU 1387 Team Queue (队列模拟)
- hdu 1387 team queue 有问题
- Team Queue 团体队列(queue运用)
- Queue Team
- Jmeter使用流程及简单分析监控
- UML的概念模型
- js中的转换_Number
- WinForm设置控件焦点
- 3.24JST
- hdu 1387 Team Queue (链表)
- UML三个关键因素之基本模块
- 关于synchronized与volatile的一点认识
- hdu2217 Visit
- View类的XML属性、相关方法及说明
- UML三个关键因素之规则
- UML三个关键因素之通用机制
- 密码正则表达式怎么写
- UML基本模块之元件概述