Uva540 Team Queue 【队列】【例题5-6】

该博客介绍了Uva540 Team Queue问题的解决方案。当新成员加入队伍时,如果已有队友在队中,他们会在队友后面排队,否则排到队伍末尾。通过使用两个队列,一个存储团队号,一个存储具体人员,实现了这一逻辑。博客详细阐述了输入处理、新成员加入和出队的步骤,并提供了相关代码。
摘要由CSDN通过智能技术生成

题目: Team Queue

题意:有t个团队的人在排队,每次新来一个人时,如果他有队友在排队,那么他就会查到最后一个队友的身后,如果没人任何队友,则他会太刀长队队尾。

思路:不能按照题意一个长队进行分析,应该分开来,用俩个队列表示,团队号为一个队列,再分别每个团队为一个队列即数组队列。

           (1) 首先输入时用map将每个人所在的团队号都标记上

           (2)当有人来时,首先查看他说在的团队队列是否为空,如果空,则将此团队号进行入队团队队列,否则不入团队队列(因为已有本团队,即为插队!)。然后把此人入队 他所在的团队队列中。

           (3)出队时,只需出团队号队列中的值,再分别将本团队的人出队,直到本团队为空时,将此团队号出团队号队列即可!

参考:入门经典--例5-6--P117

代码:

#include <iostream>
#include <map>
#include <queue>
using namespace std;
map<int,int>team;//存放人所在团队号:键是人的编号,值是团队号
int main()
{
    int t,n,n
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值