已知客户的到达时间T和服务该客户所需时间 计算所有客户的平均等待时间

题目概述

假设有N个客户在K个窗口等待服务。 每个窗口可以容纳一个人, 因此其他客户需要进行等待. 当某个客户服务完成后, 下一个客户可以进入该窗口并被服务. 我们假设没有窗口会被占用1小时以上.

现在我们给出每个客户的到达时间T和服务该客户所需要的时间P, 请计算所有客户的平均等待时间.

输入

每个输入文件包含一个测试用例. 每个测试用例, 第一行包含两个整数N( <= 1000)和K( <= 100). 其中N表示客户的数量, K表示窗口的数量.

接下来的N行, 包含两个时间: HH:MM:SS, 表示客户的到达时间; P, 表示服务该客户所需要的时间(以分钟为单位).

HH的范围是[00, 23], MM和SS的范围是[00, 59]. 我们假设没有两个客户在同一时间到达.

需要说明的是, 银行的营业时间是08:00-17:00. 如果到达的时间早于08:00, 客户需要等待至银行开始营业才能被服务; 如果客户晚于(或恰好在)17:00:01到达银行, 则该客户不会被服务, 因此也无需计算该客户的平均等待时间.

输出

对于每一个测试用例, 请输出客户的平均等待时间, 以分钟为单位, 并精确到一位小数.

解题思路

典型的模拟题, 并且比PAT 1014要简单一点的模拟题.

读入数据时, 自动过滤17:00:00以后到达的客户.

按客户先后到达顺序进行服务,  在客户服务完成后,  更新窗口的服务完成时间.

客户每次选择服务完成时间最短的进行排队(服务).

需要考虑如下情况:

- 若银行未营业, 则客户需要等待;

(以及在“遇到的问题”中阐述的一些情况)

遇到的问题

若干次WA, 存在如下需要考虑的情况

1. 若所有顾客都在17:00:00以后到达, 则结果为0.0;

2. 若当前所有顾客都已服务完毕, 但是下一位顾客还未到来, 需要窗口需要等待;

3. 若当前客户不需要等待, 则该窗口服务完成时间时为客户到达时间 + 服务时间; 否则, 该窗口服务完成时间为上一个客户完成的时间 + 该客户服务时间.

时间: 2024-08-16 15:13:53

已知客户的到达时间T和服务该客户所需时间 计算所有客户的平均等待时间的相关文章

已知三个经纬度求中间点坐标

问题描述 点1:106.558806,29.711376点2:106.539259,29.671216点3:106.588701,29.673727已知这三个点求中心点坐标. 解决方案 解决方案二:除了正三角形,我没听说过其他三角形还有"中心"解决方案三:这是数学问题.你先告诉我,什么叫中心点,特别是对于非等边三角形.是重心?是各个顶点与底边中点连线交点?你想清楚你的中心点到底是什么,然后用初中数学知识就可以知道该怎么做了解决方案四:非等边三角形没有"中心"它有3个

NokiaS40和S60开发平台1.0已知问题(翻译)

问题 NokiaS40和S60开发平台1.0已知问题(翻译) 作者:陈跃峰 出自:http://blog.csdn.net/mailbomb   1.  Nokia3300不支MMA(声音处理)类库. 2.  Image.getGraphics()方法在不同的软件版本中工作不同,该方法无法在新版本的7650.3650和N-Gage中正常工作.即这些机器中无法实现双缓冲技术. 3.  Nokia7650.3650和N-Gage,无法控制背景灯和震动. 4.  同时播放声音在S60模拟器上可以运行,

在已知某一平台硬件功率的情况下,计算android代码的总能耗

问题描述 在已知某一平台硬件功率的情况下,计算android代码的总能耗 如果已知一段开源代码 ,通过什么办法在计算出所消耗的能耗呢,或者说怎样看出每条代码对应调用了什么硬件和调用时间,有研究过的前辈么,求救 解决方案 调用了什么硬件是不能看到的因为Android基于java,java不能直接调用硬件,可以通过汇编语言.计算机组成原理和操作系统这些课程大概知道是怎么调用的.调用时间可以通过前后获取系统时间相减大概知道花了多少时间. 解决方案二: 这个还真挺偏的.我也想知道,同关注. 解决方案三:

算法研究:已知不重复的int集合,求最长递增子序列

问题背景:最近换工作面试,面试官问了一道编程题,大体是已知不重复的int集合,求最长递增子集合,这个集合可以不是连续的,但顺序呢不能乱. 比如说:{2, 7, 3, 13, 6, 8}里最长递增子集合的就是{2,3,6,8}. 这道题感觉很有意思,于是回家就用代码实现了一遍. 主要代码: package com.galaxy.fym.algorithm.maxsublist; import org.apache.commons.collections.CollectionUtils; impor

Django 博客开发教程 13 - 已知小问题修正

在模型中指定排序 为了让文章(Post)按发布时间逆序排列,即最新发表的文章排在文章列表的最前面,我们对返回的文章列表进行了排序,即各个视图函数中都有类似于 Post.objects.all().order_by('-created_time') 这样的代码,这导致了很多重复.因为只要是返回的文章列表,基本都是逆序排列的,因此我们可以在 Post 模型中指定 Post 的自然排序方式. Django 允许我们在 models.Model 的子类里定义一个 Meta 的内部类,这个内部类通过指定一

最大加1-关于已知最大为99,怎么批量更新下面的100,101,111的问题

问题描述 关于已知最大为99,怎么批量更新下面的100,101,111的问题 想修改数据,比如说将单据时间修改为2015-9-21,那么单号也得随之改变,大概格式为DH年月+四位数,如果当月超出四位数那么变为五位数,反正就取当月单号最大的+1,最要紧的是怎么去实现批量更新? 如果我要修改DH2014070008 日期为2013-03-01 那么单号要修改为DH2013030001, 如果这样直接更新上去,肯定会报错,因为单号是主键,只能取当月最大的单号+1 我要实现的是批量的更新,比如二楼贴的图

千里救急,已知一个经纬度,怎么获取5公里以内的经纬度坐标范围。(版主帮加急)

问题描述 咳咳,是这样的,所有的好友都有个经纬度,我现在已知道自己的经纬度,想把5公里以内的好友列表全取出来,这个应该有个算法,大家是怎么搞的?在线等候给分,100分哦--,万分火急,加急------------ 解决方案 解决方案二:这个方法用于计算两个点之间的距离privatestaticdoubledistance(doublelon1,doublelat1,doublelon2,doublelat2){doublepi=0.0174532925199432944;//PI/180;dou

ios再现漏洞 连接到已知WiFi热点也会中招

据悉,该漏洞和此前"1970"的bug有关系,但不完全一样. 威锋网讯,你还记得将iOS设备系统时间调至1970.1.1会让设备变砖的 bug 么?尽管苹果在iOS 9.3中已经将这个bug修复,但据安全研究员指出,他们发现了一个 1970的"变种"bug,只要 iOS设备连接上了一个 WiFi 热点,设备就可能会变砖. ios再现漏洞 连接到已知WiFi热点也会中招 据 KrebsonSecurity 指出,该系统漏洞同时利用了在 iOS 中发现的两个弱点.第一个

美国政府拟立法改进物联网安全:禁止硬编码密码、已知漏洞必须修复

本文讲的是美国政府拟立法改进物联网安全:禁止硬编码密码.已知漏洞必须修复,美国参议院四位参议员Warner.Gardner.Wyden和Daines最近提交一项名为<物联网安全改进法案>(the Internet of Things Cybersecurity Improvement Act of 2017,简称IoT-CIA)的草拟法案,旨在加强物联网厂商对设备安全性的投入. 这项法案不是针对所有物联网设备,只是适用于美国政府内部使用的设备,因此不大可能会有大的反对意见,通过立法几率很大.而