我是靠谱客的博主 还单身指甲油,最近开发中收集的这篇文章主要介绍团队队列问题,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

【问题描述】

     在团队队列中每个成员都属于一个团队,如果一个成员进入队列,它首先从头到尾搜索队列,以检查它的一些队友(同一队的成员)是否已经在队列中,如果是,它会进入到该团队的后面,如果不是,它会从尾部进入队列并成为新的最后一个成员。成员出队是按常规队列操作,按照出现在队列中的顺序从头到尾进行处理。你的任务是编写一个模拟这样的团队队列的程序。

【输入形式】

     每个测试用例都以团队个数t开始(1≤t≤1000),然后是团队描述,每个描述包含属于团队的成员个数和成员编号列表,成员编号为0到999999之间的整数,一个团队最多可以包含1000个成员。然后是一系列命令,有三种不同的命令:

① ENQUEUE p:成员p进入队列。

② DEQUEUE:队列中第一个成员出来并将其从队列中删除。

③ STOP:当前测试用例结束。

    输入以t=0结束。

【输出形式】

       对于每个DEQUEUE命令,以单独一行输出出队的成员。

【样例输入】

2

3 101 102 103

3 201 202 203

ENQUEUE 101

ENQUEUE 201

ENQUEUE 102

ENQUEUE 202

ENQUEUE 103

ENQUEUE 203

DEQUEUE

DEQUEUE

DEQUEUE

DEQUEUE

DEQUEUE

DEQUEUE

STOP

【样例输出】

101

102

103

201

202

203

#include <iostream>
#include <cstdio>
#include <algorithm>
#include <cmath>
#include <cstring> 
#include <queue>
using namespace std;

queue<int> Q; 
queue<int> team[1001];
char ch[30];
int mem[1000005];//存放所有成员,大数组定义在主函数外 


int main(){
    int teamn,memn,p;
    freopen("in.txt","r",stdin);
    scanf("%d",&teamn);
    memset(mem,0,sizeof(mem));
    for(int i = 1;i <= 1000;++ i){
        while(!team[i].empty())//队伍栈非空清空 
            team[i].pop();
    }
            
    while(!Q.empty())
        Q.pop();

    for(int i = 0;i < teamn;i++){
        scanf("%d",&memn);
        for(int j = 0;j < memn;j++){
            scanf("%d",&p);
            mem[p] = i;
        }
    }//初始化
    
    while(scanf("%s",&ch)){
        if(ch[0] == 'S')//stop
            break;
        if(ch[0] == 'E'){//进入队列 
            scanf("%d",&p);
            if(team[mem[p]].empty()){
                Q.push(p);
                team[mem[p]].push(p);
            }//某队第一个入队                
            else{
                team[mem[p]].push(p);//有队友直接插队
            }
        }
        if(ch[0] == 'D'){//出队 
            printf("%dn",team[mem[Q.front()]].front());
            team[mem[Q.front()]].pop();//出队
            if(team[mem[Q.front()]].empty())//团队走完
                Q.pop();
        }
    }
    return 0;
}


不知道为什么team1000000不成功;

输入字符串的方式被警告

将&删去

最后

以上就是还单身指甲油为你收集整理的团队队列问题的全部内容,希望文章能够帮你解决团队队列问题所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(65)

评论列表共有 0 条评论

立即
投稿
返回
顶部