码迷,mamicode.com
首页 > 其他好文 > 详细

小组队列

时间:2020-03-15 10:06:38      阅读:42      评论:0      收藏:0      [点我收藏+]

标签:自己   cin   没有   char   queue   组队   scanf   插入   namespace   

# 题意
n个小组要排队,每个小组中有若干人。
当一个人来到队列时,如果队列中已经有了自己小组的成员,他就直接插队排在自己小组成员的后面,否则就站在队伍的最后面。模拟。

# 题解
一个队列储存所有小组,
n个队列储存所有小组的队员
每次一个人入队如果小组队列中已经存在,就在当前小组后面,
如果还没有就在储存小组编号的队列后面插入当前小组

 1 #include <iostream>
 2 #include <queue>
 3 using namespace std;
 4 const int N=1010;
 5 char op[10];
 6 int c[1000010],cnt=1;
 7 int x;
 8 int n;
 9 int main(){
10    while(cin>>n&&n){
11       queue<int>code,p[N];
12       for (int i = 1; i <=n ; ++i) {
13          int k;
14          scanf("%d",&k);
15          for (int j = 1; j <=k ; ++j) {
16             scanf("%d",&x);
17             c[x]=i;
18          }
19       }
20       printf("Scenario #%d\n",cnt++);
21       while(~scanf("%s",op)&&op[0]!=S){
22          if(op[0]==E){
23             scanf("%d",&x);
24             if(!p[c[x]].size())
25                code.push(c[x]);
26             p[c[x]].push(x);
27          }
28          else{
29             x=code.front();
30             printf("%d\n",p[x].front());
31             p[x].pop();
32             if(!p[x].size())
33                code.pop();
34          }
35       }
36       puts("");
37    }
38    return 0;
39 }

 

小组队列

标签:自己   cin   没有   char   queue   组队   scanf   插入   namespace   

原文地址:https://www.cnblogs.com/hhyx/p/12495716.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!