概述
个人博客思路:利用队列queue定义2个队列,一个是团队队列,一个是团队整体一个队列,然后利用映射map来记录编号。
个人博客代码如下:
#include <iostream>
#include <cstdio>
#include <map>
using namespace std;
const int maxt=1000+10;
int main()
{
int t,kase=0;
while(cin>>t,t)
{
printf("Scenario #%dn",++kase);
//记录所有人的团队编号
map<int,int>team; //team[x]表示编号为x的人所在的团队编号
for(int i=0;i<t;i++){
int n,x;
cin>>n;
while(n--) { cin>>x; team[x]=i; }
}
//模拟
queue<int> q,q2[maxt]; //q是团队整体的队列,q2[i]是团队编号为i的成员队列
while(1){
int x; char cmd[10]; cin>>cmd;
if(cmd[0]=='S') break;
else if(cmd[0]=='D') {
int t=q.front();
cout<<q2[t].front()<<endl;
q2[t].pop(); //该队首位出队
if(q2[t].empty()) q.pop(); // 如果团队t没人了,那在团队整体的队列q中移除此队
}
else if(cmd[0]=='E'){
cin>>x;
int t=team[x];
if(q2[t].empty()) q.push(t);
q2[t].push(x);
}
}
cout<<endl;
}
return 0;
}
nike官網 中山网站建设 荆州SEO 中山跆拳道 中山律师
最后
以上就是温暖魔镜为你收集整理的UVa540 Team Queue (queue)的全部内容,希望文章能够帮你解决UVa540 Team Queue (queue)所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复