zoukankan      html  css  js  c++  java
  • 小组队列

    # 题意
    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
    ",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
    ",p[x].front());
    31             p[x].pop();
    32             if(!p[x].size())
    33                code.pop();
    34          }
    35       }
    36       puts("");
    37    }
    38    return 0;
    39 }
  • 相关阅读:
    Flask 入门
    Android studio 混淆打包
    Android----获取包名和sh1
    windows下 安装 rabbitMQ 及操作常用命令
    Nginx
    Linux安装mongoDB步骤和方法
    史上最简单的 SpringCloud 教程 | 终章
    idea 项目热部署设置
    JDK源码阅读顺序
    Linux常用命令
  • 原文地址:https://www.cnblogs.com/hhyx/p/12495716.html
Copyright © 2011-2022 走看看