7-6 银行排队问题之单队列多窗口加VIP服务

本文探讨了银行排队问题,采用一队多窗口的模拟策略,结合VIP服务。通过分析每个人到达时间和窗口结束时间,构建预备队列。详细步骤包括:根据结束时间插入预备队列,优先处理VIP客户,根据最早结束窗口时间进行客户分配,并在窗口空闲时考虑VIP客户。此外,还提供了代码实现来解决这个问题。
摘要由CSDN通过智能技术生成

 

解题思路:

基本原理为一队多窗口问题,利用模拟队列进行操作

step:

①通过每个人来到的时间与窗口结束上一个工作的时间的关系来进行插入预备队列:

每次插入一个人,进行一次预备队列的刷新,即获得结束时间最小的窗口的时间,将所有输入中由头至尾将客户的到达时间小于该结束时间的客户进行入队(预备队列即排队)

②对预备队列进行操作:

1.若队列中有VIP且此时VIP窗口结束则将VIP客户安排到VIP窗口

2.获得最早结束的窗口时间,若该时间与VIP窗口同时结束,且队伍中有VIP客户,则先将VIP客户安排到VIP窗口,再安排从预备队列的头部进行安排

3.若预备队列为空,且工作未结束表明,下一个客户来到时候可以直接安排到窗口无需等待,此时只需判断此客户是否为VIP和VIP窗口是否为空即可.

4.若获得的最早结束的窗口不是VIP窗口且VIP窗口结束时间不等于最早结束窗口,则进行正常的按规则安排,特别注意无论此时队首是不是VIP此时都对窗口安排无关,但需在编程时注意VIP的操作控制.

代码实现:

#include<iostrea
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值