Team Queue -uva
来源:互联网 发布:网络电视直播在线观看 编辑:程序博客网 时间:2024/06/07 18:58
STL的模拟,比较直接
#include<cstdio>#include<cstring>#include<queue>#include<iostream>#include<algorithm>#include<vector>using namespace std;#define MAX_SIZE 1000 + 100int 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;}
0 0
- UVa 540 Team Queue
- uva 540 team queue
- Uva 540 Team Queue
- uva 540 - Team Queue
- UVa 540 - Team Queue
- UVA 540 Team Queue
- uva 540 Team Queue
- uva 540 Team Queue
- Uva 540 Team Queue
- UVa 540 - Team Queue
- UVa 540 - Team Queue
- uva 540 Team Queue
- UVA 540 Team Queue
- Team Queue UVA 540
- uva 540 - Team Queue
- Team Queue -uva
- UVa 540 - Team Queue
- UVA Team Queue
- 一致性协议
- block块结构
- 汇编---十进制到十六进制的转换
- Java 并发核心编程
- FlatUIKit
- Team Queue -uva
- 【Cocos2d-x 001】VS2012打开Cocos解决方案显示加载失败
- 使用密钥登陆SSH的方法
- poj 3069Saruman's Army 贪心
- ThinkPHP框架学习之CRUD
- FMDB
- android部分知识,自己记住以免忘记
- ORACLE中的NAME含义解析
- 汇编----串指令的使用