PAT-排队等待问题A1014/1017/1026总结

本文总结了PAT考试中涉及的排队模型问题,包括A1014、A1017和A1026三道题目。A1014是基本的排队模型,关注何时能完成所有业务;A1017简化了模型,计算平均等待时间;A1026引入VIP用户,增加了处理逻辑的复杂性。每道题目都需要注意时间的处理和排序,以及不同情况下的处理规则。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

模型:

去银行等场所排队入场/N个窗口(球台),每个窗口后m人排队/按照时间顺序排队/其他人在等待区域/按时(8:00)开门(17:00)关门
表述不太清楚、是十分贴近现实的银行办事排队的模型

A1014是个基本的model,要求输出的是何时能够办事结束//
模型认为所有的顾客都是在8:00进入排队序列
首先建立一个队列模型:
struct node{
int poptime,Endtime;
queue q;

};//窗口

tip1:为了方便计算时间,都先把时间hh:mm转化成 int类型
tip2:为每个窗口建立一个队列//先按照顺序每个窗口依次进入第1-m个人

for(int i = 1; i <= m; i++) {
        for(int j = 1; j <= n; j++) {
            if(index <= k) {
                window[j].q.push(time[index]);
                if(window[j].endtime >= 540)
                    sorry[index] = true;
                window[j].endtime += time[index];
                if(i == 1)
                    window[j].poptime = window[j].endtime;
                result[index] = window[j].endtime;
                index++;
            }
            
        }
    }

之后处理黄线以外的人:

 while(index <= k) {
        int tempmin = window[1].poptime,
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值