7-3 银行排队问题之单队列多窗口服务 (25 分)

7-3 银行排队问题之单队列多窗口服务 (25 分)

假设银行有K个窗口提供服务,窗口前设一条黄线,所有顾客按到达时间在黄线后排成一条长龙。当有窗口空闲时,下一位顾客即去该窗口处理事务。当有多个窗口可选择时,假设顾客总是选择编号最小的窗口。

本题要求输出前来等待服务的N位顾客的平均等待时间、最长等待时间、最后完成时间,并且统计每个窗口服务了多少名顾客。

输入格式:

输入第1行给出正整数N(≤1000),为顾客总人数;随后N行,每行给出一位顾客的到达时间T和事务处理时间P,并且假设输入数据已经按到达时间先后排好了顺序;最后一行给出正整数K(≤10),为开设的营业窗口数。这里假设每位顾客事务被处理的最长时间为60分钟。

输出格式:

在第一行中输出平均等待时间(输出到小数点后1位)、最长等待时间、最后完成时间,之间用1个空格分隔,行末不能有多余空格。

在第二行中按编号递增顺序输出每个窗口服务了多少名顾客,数字之间用1个空格分隔,行末不能有多余空格。

输入
9
0 20
1 15
1 61
2 10
10 5
10 3
30 18
31 25
31 2
3

题目分析: 错了几次,纯粹的模拟,注意客人到窗口的时间和窗口开放时间的关系即可,若客人比所有窗口的开放时间都小,客人就会进最小的那个,到来时间只要比最小大,从左到右遍历,第一个进去即可。
你也可以这样想,假如我早早的来到黄线等候,那么我肯定是等到最近一个available的窗口,假如我来的比较晚,那么我肯定是从左向右,那个available就去那个。

代码

>#include <bits/stdc++.h>
using namespace std;
struct consumer
{int arr; //arriveint pro; //processint wait;
}a[1001];
struct gate
{int stt=0; //start timeint n=0;
}b[11],ss[11];
bool cmp(struct consumer x,struct consumer y)
{return x.wait>y.wait;
}
bool cmmp(struct gate x,struct gate y)
{return x.stt>y.stt;
}
int main()
{int n,ar,pr;double waitsum=0;cin>>n;for (int i=0;i<n;i++){cin>>ar>>pr;if (pr>60) pr=60;a[i].arr=ar;a[i].pro=pr;}int k,count=0;cin>>k;while (count<n){                                        //到的时间比所有窗口的stt都晚,就进入第一个窗口,否则进入第一个stt最小的窗口.
//		for (int i=0;i<k;i++)
//		{
//			printf("%d的开始时间是%d\n\n",i,b[i].stt);
//		}int t=0;for (int i=1;i<k;i++){if (b[i].stt<b[t].stt){t=i;}}if (a[count].arr<=b[t].stt){b[t].n++;a[count].wait=b[t].stt-a[count].arr;waitsum+=a[count].wait;b[t].stt+=a[count].pro;count++;}else if (a[count].arr>b[t].stt){int appr;for (int i=0;i<k;i++){if (a[count].arr>=b[i].stt){appr=i;break;}}b[appr].n++;a[count].wait=0;b[appr].stt=a[count].arr+a[count].pro;count++;}}int sss=0;for (int i=0;i<k;i++){ss[sss++].n=b[i].n;}sort(a,a+count,cmp);sort(b,b+k,cmmp);printf("%.1lf %d %d",waitsum/n,a[0].wait,b[0].stt);printf("\n");printf("%d",ss[0].n);for (int i=1;i<k;i++){printf(" %d",ss[i].n);}
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/484494.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Win32 程序运行原理

处理器的3工作方式&#xff1a;实模式&#xff0c;保护模式&#xff0c;虚拟86模式。CPU的主要工作在保护模式下。Windows操作系统就是运行在保护模式下的&#xff1b;Windows多任务的实现&#xff1a;任务间的切换提供了良好条件&#xff0c;多任务隔离&#xff0c;每个任务都…

40年诞生7位诺奖得主,美国贝尔实验室做对了什么?

贝尔实验室从1940年到1979年&#xff0c;共40年&#xff0c;历经4位总裁。这4位总裁在不同时期根据当时的形势&#xff0c;都提出了自己的管理方针&#xff0c;领导着该实验室近万名工作人员和几千名的科学家和工程师为世界和美国的科技发展作出了重要的贡献。来源&#xff1a;…

图书管理销售系统需求分析报告,对性能的规定以及运行环境规定部分

负责人&#xff1a;皮皮周(20160401085) 国字号(20160401105 完成工作&#xff1a; 3.3对性能的规定3.3.1精度 软件的输入精度:如果输入为数字,小数点后保留2位有效数字;如果输入为字符串,其长度限定为16位。 输出数据精度的要求: 如果输出为数字,小数点后保留…

7-4 堆栈模拟队列 (25 分)

7-4 堆栈模拟队列 (25 分) 设已知有两个堆栈S1和S2&#xff0c;请用这两个堆栈模拟出一个队列Q。 所谓用堆栈模拟队列&#xff0c;实际上就是通过调用堆栈的下列操作函数: int IsFull(Stack S)&#xff1a;判断堆栈S是否已满&#xff0c;返回1或0&#xff1b; int IsEmpty (…

H5唤醒app,不完全兼容

---ps---最近新发现一个开源的H5唤醒app的库&#xff1a;建议使用第三方开源库https://github.com/suanmei/callapp-lib实现&#xff1b;或者极光魔链&#xff08;后期可能会收费&#xff09;https://www.cnblogs.com/SimonHu1993/p/10578775.html<script type"text/ja…

7-5 列车厢调度 (25 分)

7-5 列车厢调度 (25 分) 1 <--移动方向/ 3 \2 -->移动方向大家或许在某些数据结构教材上见到过“列车厢调度问题”&#xff08;当然没见过也不要紧&#xff09;。今天&#xff0c;我们就来实际操作一下列车厢的调度。对照上方的ASCII字符图&#xff0c…

64位系统下,一个32位的程序究竟可以申请到多少内存,4GB还是更多

前言&#xff1a; cpu的位是指一次性可处理的数据量是多少&#xff0c;1字节8位&#xff0c;32位处理器可以一次性处理4个字节的数据量&#xff0c;依次类推。32位操作系统针对的32位的CPU设计。64位操作系统针对的64位的CPU设计。操作系统只是硬件和应用软件中间的一个平台。我…

长二F发射神十二飞船圆满成功!三名航天员飞向空间站天和核心舱

来源&#xff1a;中国航天科技集团文&#xff1a;陈立 刘岩编辑&#xff1a;杨成 高一鸣校对&#xff1a;林佳昕监制&#xff1a;索阿娣6月17日9时22分长征二号F运载火箭点火起飞中国航天员聂海胜、刘伯明、汤洪波乘坐神舟十二号载人飞船在“神箭”长二F托举下从酒泉卫星发射中…

codevs 3288 积木大赛

3288 积木大赛 &#xff08;2013年NOIP全国联赛提高组&#xff09; 时间限制: 1 s 空间限制: 128000 KB 题目等级 : 钻石 Diamond 题目描述 Description 春春幼儿园举办了一年一度的“积木大赛”。今年比赛的内容是搭建一座宽度为 n 的大厦&#xff0c;大厦可以看成由 n 块宽…

定义变量类型

typedef unsigned long DWORD; typedef int BOOL; typedef unsigned char BYTE; typedef unsigned short WORD; typedef float FLOAT; typedef void far *LPVOID; typedef int INT; typedef unsigned int UINT; 变量的“匈牙利表示法”&#xff1a; lp为前缀&#xff1a;指针类…

.net core中不支持GB2312编码的问题

今天在用core实现读取文件内容时出现了中文乱码的问题&#xff0c;特此记录下。代码如下&#xff1a;static void Main(string[] args){string path "F:\\1.txt";StreamReader sr new StreamReader(path, Encoding.Default);String line;while ((line sr.ReadLine…

java中Scanner类的使用

1.导入包 java.util.Scanner; 代码 import java.util.Scanner;&#xff08;不要忘记分号&#xff09; 2.创建Scanner对象 代码&#xff1a;Scanner inputnew Scanner(System.in); 3.创建变量接受输入 代码&#xff1a; int ainput.nextInt(); 显然&#xff0c;此代码只能输入一…

脑机融合技术的哲学审思

来源&#xff1a;《科学技术哲学研究》2020年第6期作者&#xff1a;张学义&#xff08;东南大学哲学与科学系&#xff09;潘平平&#xff08;华为南京所&#xff09;庄桂山&#xff08;东南大学成贤学院&#xff09;国家社科基金重大项目“问题哲学理论前沿与理论创新研究”(18…

“哪里有人喜欢孤独,不过是害怕失望罢了”———村上春树《东尼泷谷》观后感...

每个人发自内心的感受&#xff0c;都是孤独的&#xff0c;哪怕表面多么欢快。 ——By 浪漫Chopin 配乐&#xff1a; http://music.163.com/song/498210/?userid539620943 东尼的一生都是孤独的&#xff0c;生下来父亲带他到处流浪&#xff0c;对他不管不问。 他自己做饭&…

windows定时计划备份MySql

使用 MySql 的 mysqldump 将数据库文件备份成 sql 文件。 Windows下备份 本地的数据库环境 MySql 安装环境&#xff1a;C:\MySql 数据库名称&#xff1a;bbs root root 数据库备份目的地&#xff1a; D:/Data_BackUp echo off set "Ymd%date:~,4%%date:~5,2%%date:~8,2%&q…

“新一代城市大脑建设与发展“专家研讨会

2021年6月城市大脑全球标准研究组成员在国家级核心期刊发表论文&#xff08;6月末出版&#xff09;&#xff0c;阐述了关于城市大脑的最新进展&#xff0c;基于城市大脑全球标准研究&#xff0c;形成新一代城市大脑的“1N”模式建设方案和九个实施步骤&#xff1b;突出了直接应…

进程的控制——获取系统进程信息

获取系统进程 ToolHelp函数&#xff1b;CreateToolhelp32Snapshot函数获取当前系统内执行的进程拍快照&#xff08;Snapshot&#xff09;&#xff0c;即获得进程列表&#xff1b;Process32First函数和Process32Next函数遍历列表&#xff1b;快照头文件&#xff1a;#include<…

PHP随笔---简述var_dump()、print_r()、echo()

var_dump() 能打印出类型 print_r() 只能打出值 echo() 是正常输出… 需要精确调试的时候用 var_dump(); 一般查看的时候用 print_r() 另外 &#xff0c; echo不能显示数组 其余2个可以…

Science: 四万张大脑图像首次揭示人脑白质的基因基础

来源&#xff1a;青牛帮脑白质&#xff0c;是大脑内部神经纤维聚集的地方&#xff0c;由于其区域比细胞体聚集的大脑表层颜色浅&#xff0c;故名脑白质。人到了大约二十岁时&#xff0c;白质才会在不同脑区逐渐发育完全&#xff0c;而其生长的时机与成熟程度&#xff0c;会影响…