模型:
去银行等场所排队入场/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,