STL的模拟,比较直接

#include<cstdio>
#include<cstring>
#include<queue>
#include<iostream>
#include<algorithm>
#include<vector>
using namespace std;
#define MAX_SIZE 1000 + 100
int team  [MAX_SIZE][MAX_SIZE];
int visa  [MAX_SIZE];/*记录编号为i的小组是不是在队列里面*/
int number[MAX_SIZE];/*表示第i个队伍在总队列的第number[i]个地方*/
int n;
int m[MAX_SIZE];
int searchs(int x){  /*查找值为x的元素在哪个队列里*/int *t;for(int i = 0;i < n;i++){t = find(team[i],team[i]+m[i],x);int pos = t - team[i];if(pos < m[i])return i;}
}
int main(){int Case = 1;while(scanf("%d",&n)!=EOF&&n){memset(visa,0,sizeof(visa));memset(number,0,sizeof(number));vector<queue<int> >Team; /*定义一个队列的集合*/for(int i = 0;i < n;i++){scanf("%d",&m[i]); /*第i个队伍的长度*/for(int j = 0;j < m[i];j++)scanf("%d",&team[i][j]);}char order[50L];printf("Scenario #%d\n",Case++);while(true){scanf("%s",order);if(!strcmp(order,"STOP")) break;else if(!strcmp(order,"DEQUEUE")){printf("%d\n",Team[0].front());int x = Team[0].front();Team[0].pop();if(Team[0].empty()){ /*如果空了的话*/int pos = searchs(x);visa[pos] = 0;/*编号为i的队伍已经不在队伍里了*/Team.erase(Team.begin());  /*开始的一队移除*//*每个队伍的位置前移1位*/for(int w = 0 ; w < MAX_SIZE ;w++)number[w]--;}}else{int x;scanf("%d",&x);int pos = searchs(x);if(!visa[pos]){queue<int> temp;temp.push(x);Team.push_back(temp);visa[pos] = 1;number[pos] = Team.size() - 1;}else if(visa[pos]){ /*如果这个所属的队伍已经存在*/Team[number[pos]].push(x);}}}printf("\n");Team.clear();}return 0;
}

Team Queue -uva相关推荐

  1. 解题报告——例题 5-6团体队列(Team Queue UVa 540)——31行代码解决

    题目大意: 有t个团队的人正在排一个长队,每次新来一个人时,如果他有队友在排队,那么这个新人会插队到最后一个队友的身后.如果没有任何一个队友排队,那么他会排到长队的队尾.输入每个团队中所有队员的编号, ...

  2. 团体队列(Team Queue,UVA 540)

    题目描述 思路 两类队列,一类是团队的整体队列,此队列存放的是团队的编号,另一类是一个团队一个队列,此队列存放的是队员的编号 DEQUEUE操作:首先根据整体队列,找到第一个团队编号,根据团队编号确定 ...

  3. uva 540 (Team Queue UVA - 540)

    又是一道比较复杂的模拟题.题中有两种队列,一种是总队列,从前向后.其他的是各个团体的小队列,因为入队的人如果有队友的话,会优先进入团体队列. 所以我们先设置两个队列和一个map,设置map倒是可以不用 ...

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

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

  5. 540 - Team Queue

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

  6. HDU1387 Team Queue

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

  7. UVA - 540:Team Queue

    主要的关键在于:不要试图让所有团队的人在一个队列里面,因为这样如果新入队的是一个前面团队的成员则必须先出队再入队. 应该把每个团队看做一个整体,用一个队列维护团队的顺序,用t个队列维护每个团队内部的顺 ...

  8. 【例题5-6 UVA 540 】Team Queue

    [链接] 我是链接,点我呀:) [题意] 在这里输入题意 [题解] 用两个队列模拟就好. 记录某个队在不在队列里面. 模拟 [错的次数] 在这里输入错的次数 [反思] 在这里输入反思 [代码] #in ...

  9. UVA 540 Team Queue

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

  10. UVa540 Team Queue

    // 题意:有t个团队的人在排队.每次来了一个新人之后,如果他有队友在排队,那么这个新人会插队到队友的身后. // 要求支持三种指令:ENQUEUE x; DEQUEUE(队首出队); STOP.模拟 ...

最新文章

  1. android 简单的音乐播放器
  2. linux适合搭建什么服务器吗,Linux 的三种服务器的搭建
  3. 使用Spring WebFlux从Corda节点流式传输数据
  4. C语言模拟顺序栈的创建、入栈、出栈操作
  5. 游戏桌面壁纸|英雄联盟,热爱游戏的朋友看这里
  6. Python基础(注释/算数运算符/变量类型/拼接字符串)
  7. ArcGIS API For JS 之Symbol
  8. [转载] python string 字符串转换为字典 dict
  9. XNA Game Studio 2.0安装问题,崩溃了
  10. Wireshark抓包获取QQ好友IP
  11. java -jar 详解,Java中jar命令详解
  12. 声艺fx16调音台怎么样_声艺调音台FX16II使用说明书.doc
  13. 时间序列可预测性度量
  14. #EDA(电子设计自动化)
  15. Ae 表达式语言引用​:Comp
  16. DIY装机之入围产品
  17. 2014年实习生招聘之多益网络实习生招聘笔试题—2014/04/17
  18. tpshop index.php,第三讲、TPshop linux安装
  19. 公园遛狗(小 * 逛公园)
  20. mysql中signed是什么类型_mysql|unsigned 与 signed 类型

热门文章

  1. Groq:从头设计一个张量流式处理器架构
  2. maven编译,执行测试用例报错 The forked VM terminated without saying properly goodbye. VM crash or System.exit c
  3. Anmle,Factors,andMultiFactorModels
  4. 个人搭建ASP网站,从头开始完全教程(一)
  5. Win10环境iTunes制作iPhone铃声(2021)
  6. iPhoneX适配方案
  7. 职场新人注意事项:抖包袱可以,抖机灵不要
  8. 网络三剑客之sed编辑器
  9. 解决Ubuntu 22.04 LTS作为nfs server时根文件系统挂载失败的问题
  10. WIN10下删除Hiberfil.sys文件