1017 Queueing at Bank (25 分) 有很多错误的题解大家注意

2024-02-05 08:32

本文主要是介绍1017 Queueing at Bank (25 分) 有很多错误的题解大家注意,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

题目分析:

有n个客户,k个窗口依次根据客户的到达顺序进行业务办理,类似于操作系统中的先来先服务算法,每个客户的办理时间不超过60min,很多题解说大于60就等于60的说法是错误,这里的样例就是不超过60min,是保证的。

解题思路:

好多题解都是找目前最快结束的窗口(可以考虑优先队列),我是统一起来根据秒从8点开始模拟,检测这一秒是否有客户办理完毕,以及是否有客户可以进行处理。时间复杂度是O(t*k),t是办理所需总时间,k是k个窗口。

题解代码:

#include<iostream>
#include<queue>
#include<cstdio>
#include<algorithm>
using namespace std;
int a[10001]={0};
int pt[10001];
int st[10001];
int ppt[10001];
struct node{int st;int ppt;int pt;int end;
};
bool cmp(node a,node b)
{return a.st<b.st;
}
int main()
{int n,k,sub=0;node array[10001];cin>>n>>k;int eta=(17-8)*3600;for(int i=1;i<=n;i++){	int h,min,s,p;scanf("%d:%d:%d %d",&h,&min,&s,&p);int temp=(h-8)*3600+min*60+s;if(temp>=eta)continue;array[sub].st=temp;//if(p>60)//p=60;array[sub].pt=p*60;array[sub].ppt=array[sub].pt;sub++;}sort(array,array+sub,cmp);
/*	for(int i=0;i<sub;i++){cout<<array[i].st<<" "<<array[i].pt<<" "<<endl;}
*/	int start=0;int time=0;queue<int>q[101];while(start<sub){	for(int i=1;i<=k;i++){	if(q[i].size()==0)continue;int y=q[i].front();array[y].pt--;//cout<<y<<" "<<pt[y]<<" "<<(pt[y]==0)<<endl;//cout<<array[y].pt<<endl;if(array[y].pt<=0){	q[i].pop();}}for(int i=1;i<=k;i++){if(q[i].size()==0){	if(array[start].st<time){q[i].push(start);array[start].end=time;//cout<<array[j].st<<" "<<time<<endl;start++;}elsebreak;}}time++;}//cout<<pt[7]<<" "<<a[7]<<endl;double sum=0;for(int i=0;i<sub;i++){	//cout<<array[i].end<<" "<<array[i].st<<endl;sum+=array[i].end-array[i].st;}if(sub==0)cout<<"0.0";elseprintf("%.1f",sum/(1.0*60)/(1.0*sub)); return 0;
}

这篇关于1017 Queueing at Bank (25 分) 有很多错误的题解大家注意的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/680321

相关文章

SpringBoot中的404错误:原因、影响及解决策略

《SpringBoot中的404错误:原因、影响及解决策略》本文详细介绍了SpringBoot中404错误的出现原因、影响以及处理策略,404错误常见于URL路径错误、控制器配置问题、静态资源配置错误... 目录Spring Boot中的404错误:原因、影响及处理策略404错误的出现原因1. URL路径错

Spring常见错误之Web嵌套对象校验失效解决办法

《Spring常见错误之Web嵌套对象校验失效解决办法》:本文主要介绍Spring常见错误之Web嵌套对象校验失效解决的相关资料,通过在Phone对象上添加@Valid注解,问题得以解决,需要的朋... 目录问题复现案例解析问题修正总结  问题复现当开发一个学籍管理系统时,我们会提供了一个 API 接口去

五大特性引领创新! 深度操作系统 deepin 25 Preview预览版发布

《五大特性引领创新!深度操作系统deepin25Preview预览版发布》今日,深度操作系统正式推出deepin25Preview版本,该版本集成了五大核心特性:磐石系统、全新DDE、Tr... 深度操作系统今日发布了 deepin 25 Preview,新版本囊括五大特性:磐石系统、全新 DDE、Tree

解决mybatis-plus-boot-starter与mybatis-spring-boot-starter的错误问题

《解决mybatis-plus-boot-starter与mybatis-spring-boot-starter的错误问题》本文主要讲述了在使用MyBatis和MyBatis-Plus时遇到的绑定异常... 目录myBATis-plus-boot-starpythonter与mybatis-spring-b

购买磨轮平衡机时应该注意什么问题和技巧

在购买磨轮平衡机时,您应该注意以下几个关键点: 平衡精度 平衡精度是衡量平衡机性能的核心指标,直接影响到不平衡量的检测与校准的准确性,从而决定磨轮的振动和噪声水平。高精度的平衡机能显著减少振动和噪声,提高磨削加工的精度。 转速范围 宽广的转速范围意味着平衡机能够处理更多种类的磨轮,适应不同的工作条件和规格要求。 振动监测能力 振动监测能力是评估平衡机性能的重要因素。通过传感器实时监

C++ | Leetcode C++题解之第393题UTF-8编码验证

题目: 题解: class Solution {public:static const int MASK1 = 1 << 7;static const int MASK2 = (1 << 7) + (1 << 6);bool isValid(int num) {return (num & MASK2) == MASK1;}int getBytes(int num) {if ((num &

ural 1017. Staircases DP

1017. Staircases Time limit: 1.0 second Memory limit: 64 MB One curious child has a set of  N little bricks (5 ≤  N ≤ 500). From these bricks he builds different staircases. Staircase consist

C语言 | Leetcode C语言题解之第393题UTF-8编码验证

题目: 题解: static const int MASK1 = 1 << 7;static const int MASK2 = (1 << 7) + (1 << 6);bool isValid(int num) {return (num & MASK2) == MASK1;}int getBytes(int num) {if ((num & MASK1) == 0) {return

SpringMVC入参绑定特别注意

1.直接在controller中定义一个变量,但是此种传输方式有一个限制就是参数名和请求中的参数名必须保持一致,否则失效。 @RequestMapping("test2")@ResponseBodypublic DBHackResponse<UserInfoVo> test2(String id , String name){UserInfoVo userInfoVo = new UserInf

C - Word Ladder题解

C - Word Ladder 题解 解题思路: 先输入两个字符串S 和t 然后在S和T中寻找有多少个字符不同的个数(也就是需要变换多少次) 开始替换时: tips: 字符串下标以0开始 我们定义两个变量a和b,用于记录当前遍历到的字符 首先是判断:如果这时a已经==b了,那么就跳过,不用管; 如果a大于b的话:那么我们就让s中的第i项替换成b,接着就直接输出S就行了。 这样