Team Queue -uva
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相关推荐
- 解题报告——例题 5-6团体队列(Team Queue UVa 540)——31行代码解决
题目大意: 有t个团队的人正在排一个长队,每次新来一个人时,如果他有队友在排队,那么这个新人会插队到最后一个队友的身后.如果没有任何一个队友排队,那么他会排到长队的队尾.输入每个团队中所有队员的编号, ...
- 团体队列(Team Queue,UVA 540)
题目描述 思路 两类队列,一类是团队的整体队列,此队列存放的是团队的编号,另一类是一个团队一个队列,此队列存放的是队员的编号 DEQUEUE操作:首先根据整体队列,找到第一个团队编号,根据团队编号确定 ...
- uva 540 (Team Queue UVA - 540)
又是一道比较复杂的模拟题.题中有两种队列,一种是总队列,从前向后.其他的是各个团体的小队列,因为入队的人如果有队友的话,会优先进入团体队列. 所以我们先设置两个队列和一个map,设置map倒是可以不用 ...
- 【队列】Team Queue(luogu-UVA540/poj 2259)
Team Queue luogu-UVA540 poj 2259 题目大意: 有n个小组的人要排队,每个小组中有若干个人,当一个人入队时,如果队中有自己小组的人就跟在此人后面,否则站在队尾,现在给出一 ...
- 540 - Team Queue
Team Queue PS:因为该题排版较麻烦,这里给出OJ网址:UVa540 - Team Queue 有t个团队的人正在排一个长队.每次新来一个人时,如果他有队友在排队,那么这个新人会插队到最后一 ...
- HDU1387 Team Queue
题目描述: Problem Description Queues and Priority Queues are data structures which are known to most com ...
- UVA - 540:Team Queue
主要的关键在于:不要试图让所有团队的人在一个队列里面,因为这样如果新入队的是一个前面团队的成员则必须先出队再入队. 应该把每个团队看做一个整体,用一个队列维护团队的顺序,用t个队列维护每个团队内部的顺 ...
- 【例题5-6 UVA 540 】Team Queue
[链接] 我是链接,点我呀:) [题意] 在这里输入题意 [题解] 用两个队列模拟就好. 记录某个队在不在队列里面. 模拟 [错的次数] 在这里输入错的次数 [反思] 在这里输入反思 [代码] #in ...
- UVA 540 Team Queue
题目链接:https://vjudge.net/problem/UVA-540 题目翻译摘自<算法禁赛入门经典> 题目大意 有 t 个团队的人正在排一个长队.每次新来一个人时,如果他有队友 ...
- UVa540 Team Queue
// 题意:有t个团队的人在排队.每次来了一个新人之后,如果他有队友在排队,那么这个新人会插队到队友的身后. // 要求支持三种指令:ENQUEUE x; DEQUEUE(队首出队); STOP.模拟 ...
最新文章
- android 简单的音乐播放器
- linux适合搭建什么服务器吗,Linux 的三种服务器的搭建
- 使用Spring WebFlux从Corda节点流式传输数据
- C语言模拟顺序栈的创建、入栈、出栈操作
- 游戏桌面壁纸|英雄联盟,热爱游戏的朋友看这里
- Python基础(注释/算数运算符/变量类型/拼接字符串)
- ArcGIS API For JS 之Symbol
- [转载] python string 字符串转换为字典 dict
- XNA Game Studio 2.0安装问题,崩溃了
- Wireshark抓包获取QQ好友IP
- java -jar 详解,Java中jar命令详解
- 声艺fx16调音台怎么样_声艺调音台FX16II使用说明书.doc
- 时间序列可预测性度量
- #EDA(电子设计自动化)
- Ae 表达式语言引用​:Comp
- DIY装机之入围产品
- 2014年实习生招聘之多益网络实习生招聘笔试题—2014/04/17
- tpshop index.php,第三讲、TPshop linux安装
- 公园遛狗(小 * 逛公园)
- mysql中signed是什么类型_mysql|unsigned 与 signed 类型
热门文章
- Groq:从头设计一个张量流式处理器架构
- maven编译,执行测试用例报错 The forked VM terminated without saying properly goodbye. VM crash or System.exit c
- Anmle,Factors,andMultiFactorModels
- 个人搭建ASP网站,从头开始完全教程(一)
- Win10环境iTunes制作iPhone铃声(2021)
- iPhoneX适配方案
- 职场新人注意事项:抖包袱可以,抖机灵不要
- 网络三剑客之sed编辑器
- 解决Ubuntu 22.04 LTS作为nfs server时根文件系统挂载失败的问题
- WIN10下删除Hiberfil.sys文件