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

相关文章

Windows Docker端口占用错误及解决方案总结

《WindowsDocker端口占用错误及解决方案总结》在Windows环境下使用Docker容器时,端口占用错误是开发和运维中常见且棘手的问题,本文将深入剖析该问题的成因,介绍如何通过查看端口分配... 目录引言Windows docker 端口占用错误及解决方案汇总端口冲突形成原因解析诊断当前端口情况解

C/C++错误信息处理的常见方法及函数

《C/C++错误信息处理的常见方法及函数》C/C++是两种广泛使用的编程语言,特别是在系统编程、嵌入式开发以及高性能计算领域,:本文主要介绍C/C++错误信息处理的常见方法及函数,文中通过代码介绍... 目录前言1. errno 和 perror()示例:2. strerror()示例:3. perror(

Go标准库常见错误分析和解决办法

《Go标准库常见错误分析和解决办法》Go语言的标准库为开发者提供了丰富且高效的工具,涵盖了从网络编程到文件操作等各个方面,然而,标准库虽好,使用不当却可能适得其反,正所谓工欲善其事,必先利其器,本文将... 目录1. 使用了错误的time.Duration2. time.After导致的内存泄漏3. jsO

Python中ModuleNotFoundError: No module named ‘timm’的错误解决

《Python中ModuleNotFoundError:Nomodulenamed‘timm’的错误解决》本文主要介绍了Python中ModuleNotFoundError:Nomodulen... 目录一、引言二、错误原因分析三、解决办法1.安装timm模块2. 检查python环境3. 解决安装路径问题

如何解决mysql出现Incorrect string value for column ‘表项‘ at row 1错误问题

《如何解决mysql出现Incorrectstringvalueforcolumn‘表项‘atrow1错误问题》:本文主要介绍如何解决mysql出现Incorrectstringv... 目录mysql出现Incorrect string value for column ‘表项‘ at row 1错误报错

SpringBoot项目启动错误:找不到或无法加载主类的几种解决方法

《SpringBoot项目启动错误:找不到或无法加载主类的几种解决方法》本文主要介绍了SpringBoot项目启动错误:找不到或无法加载主类的几种解决方法,具有一定的参考价值,感兴趣的可以了解一下... 目录方法1:更改IDE配置方法2:在Eclipse中清理项目方法3:使用Maven命令行在开发Sprin

前端bug调试的方法技巧及常见错误

《前端bug调试的方法技巧及常见错误》:本文主要介绍编程中常见的报错和Bug,以及调试的重要性,调试的基本流程是通过缩小范围来定位问题,并给出了推测法、删除代码法、console调试和debugg... 目录调试基本流程调试方法排查bug的两大技巧如何看控制台报错前端常见错误取值调用报错资源引入错误解析错误

部署Vue项目到服务器后404错误的原因及解决方案

《部署Vue项目到服务器后404错误的原因及解决方案》文章介绍了Vue项目部署步骤以及404错误的解决方案,部署步骤包括构建项目、上传文件、配置Web服务器、重启Nginx和访问域名,404错误通常是... 目录一、vue项目部署步骤二、404错误原因及解决方案错误场景原因分析解决方案一、Vue项目部署步骤

在MySQL执行UPDATE语句时遇到的错误1175的解决方案

《在MySQL执行UPDATE语句时遇到的错误1175的解决方案》MySQL安全更新模式(SafeUpdateMode)限制了UPDATE和DELETE操作,要求使用WHERE子句时必须基于主键或索引... mysql 中遇到的 Error Code: 1175 是由于启用了 安全更新模式(Safe Upd

Java下载文件中文文件名乱码的解决方案(文件名包含很多%)

《Java下载文件中文文件名乱码的解决方案(文件名包含很多%)》Java下载文件时,文件名中文乱码问题通常是由于编码不正确导致的,使用`URLEncoder.encode(filepath,UTF-8... 目录Java下载文件中文文件名乱码问题一般情况下,大家都是这样为了解决这个问题最终解决总结Java下