当前位置: 首页 > news >正文

【PAT甲级题解记录】1014 Waiting in Line (30 分)

【PAT甲级题解记录】1014 Waiting in Line (30 分)

前言

Problem:1014 Waiting in Line (30 分)

Tags:模拟 双端队列

Difficulty:剧情模式 想流点汗 想流点血 死而无憾

Address:1014 Waiting in Line (30 分)

问题描述

银行有N个业务窗口,每个窗口可以排队M人,如果有多的人就在外面等,8点开始K个人按照输入顺序去办理业务,当外面等的人能进去排队时优先选择人少的队伍,如果一样就优先选择序号靠前的窗口。现在给定所有人的业务需要的时间,求每个人按照这个规则办完业务的时间。(只接受17点前开始办理的业务,坑点在于17点前办理的业务结束时间可能超过17点,所以输出时不能只判断结束时间还应考虑开始时间

解题思路

  1. 除了有一个坑点外这道题还是一道并不特别复杂的模拟题,由于是排队自然能想到利用队列去解决,这里可以使用双端队列方便队伍头部的处理。
  2. 思路是按照题目意思先初始化所有队列,包括N个双端队列(窗口排队队列)和一个在外面等的队列;
    • 每次循环都从N个队列的队头中确定出还需办理业务的最短时间,在这一次循环里,等于这个最短时间的所有队头客户都能解决业务,这些客户直接保存好时间后出队;
    • 剩余的队头客户则把各自剩余的办理时间减去前面求出来的最短时间,即更新正在办理业务的客户的剩余时间。
    • 一次循环结束后检查外队列,不为空则按照题目规则入窗口排队队列。
  3. 由于输出时需要知道每一个客户的编号,所以队列元素不仅仅是 “int” ,而应该是一个 “pair<int,int>”。
  4. 输出时需要判断开始时间是否超时,需要我们输入时根据客户编号存放业务时间,每个客户的业务结束时间减去这个时间就是开始时间。

参考代码

/** @Author: Retr0.Wu * @Date: 2022-02-16 15:08:36 * @Last Modified by: Retr0.Wu* @Last Modified time: 2022-02-16 20:35:23*/
#include <bits/stdc++.h>
using namespace std;
int main()
{int N, M, K, Q;cin >> N >> M >> K >> Q;deque<pair<int, int> > deq[21];queue<pair<int, int> > que;vector<int> time(K, 0);vector<int> time_len(K, 0);for (int i = 0; i < K; i++){int ktime;cin >> ktime;time_len[i] = ktime;if (i < N * M){deq[i % N].push_back(make_pair(i, ktime));}else{que.push(make_pair(i, ktime));}}int sumtime = 0;for (int i = 0; i < K; i++) // 至多K次,可能更少{int minn = 0x3f3f3f3f;for (int j = 0; j < N; j++){ // 遍历每一个柜台if (deq[j].empty())continue;int last = deq[j].front().second;minn = min(last, minn);}sumtime += minn; // 别忘了更新已流逝的时间for (int j = 0; j < N; j++){if (deq[j].empty())continue;int last = deq[j].front().second;int id = deq[j].front().first;last -= minn;  // 该客户剩余业务时间if (last == 0) // 该客户业务可以在此次遍历完成{time[id] = sumtime; // 该客户业务完成deq[j].pop_front();if (!que.empty()){deq[j].push_back(que.front());que.pop();}}else // 该客户业务不可以在此次遍历完成{deq[j].pop_front();deq[j].push_front(make_pair(id, last));}}}// for(int i=0;i<K;i++){//     cout<<i+1<<" : "<<time[i]<<endl;// }for (int i = 0; i < Q; i++){int id;cin >> id;if (time[id - 1] - time_len[id - 1] >= 540){cout << "Sorry" << endl;}else{printf("%02d:%02d\n", 8 + time[id - 1] / 60, time[id - 1] % 60);}}return 0;
}

总结

queue deque stack 等基础数据结构需要熟悉,模拟题一般都用的上。

相关文章:

【PAT甲级题解记录】1014 Waiting in Line (30 分)

【PAT甲级题解记录】1014 Waiting in Line (30 分) 前言 Problem&#xff1a;1014 Waiting in Line (30 分) Tags&#xff1a;模拟 双端队列 Difficulty&#xff1a;剧情模式 想流点汗 想流点血 死而无憾 Address&#xff1a;1014 Waiting in Line (30 分) 问题描述 银行有N个…...

web接入大华摄像头实时视频

目录 一、FFmpeg下载及配置​​​​ 二、nginx下载及配置 三、摄像rtsp取流 四、ffmpeg推流 五、html前端工作 一、FFmpeg下载及配置​​​​ 地址&#xff1a;Download FFmpeg 下载并解压FFmpeg文件夹&#xff0c;配置环境变量&#xff1a;在“Path”变量原有变量值内容…...

Git代码冲突-不同分支之间的代码冲突

1、解决思路在团队开发中&#xff0c;提交代码到Git仓库时经常会遇到代码冲突的问题。- 原因&#xff1a;多人对相同的文件进行了编辑&#xff0c;造成代码存在差异化- 解决方案&#xff1a;1. 使用工具或git命令对比不同分支代码的差异化2. 把不同分支中有效代码进行保留&…...

KUKA KR C4机器人与S7-1200PLC进行PROFINET通信的具体方法和步骤

KUKA KR C4机器人与S7-1200PLC进行PROFINET通信的具体方法和步骤 首先,从KUKA机器人控制柜中将KOP备选软件包拷贝出来,然后在“WorkVisual Development Environment”安装KUKA备选软件包(版本非常重要,尽量从控制柜中拷贝), 也可以从以下链接中获取: KUKA机器人PROFINET…...

从0到1一步一步玩转openEuler--24 openEuler管理进程-调度启动进程

文章目录24 openEuler管理进程-调度启动进程24.1 定时运行一批程序&#xff08;at&#xff09;24.1.1 at命令24.1.2 设置时间24.1.3 执行权限24.2 周期性运行一批程序&#xff08;cron&#xff09;24.2.1 运行机制24.2.2 crontab命令24.2.3 crontab文件24.2.4 编辑配置文件操作…...

Servlet笔记(10):Session跟踪

Servlet Session 跟踪 Http是一种“无状态”协议&#xff0c;所以需要保存session会话&#xff0c;维持Web服务器连接。 Cookies 一个Web服务器可以分配一个唯一的session会话ID存储至Web客户端的cookie中&#xff0c;对于客户端的后续请求可以使用接收到的cookie来识别。 但是…...

Hive---分区表和分桶表

分区表和分桶表 文章目录分区表和分桶表分区表语法加载数据增加分区删除分区查看分区表有多少分区查看分区表结构动态分区开启动态分区功能&#xff08;默认 true&#xff0c;开启&#xff09;设置为非严格模式在所有执行 MR 的节点上&#xff0c;最大一共可以创建多少个动态分…...

C++ STL

1. 什么是STLSTL(standard template libaray-标准模板库)&#xff1a;是C标准库的重要组成部分&#xff0c;不仅是一个可复用的组件库&#xff0c;而且是一个包罗数据结构与算法的软件框架。通俗来说&#xff1a;将常见的数据结构&#xff08;顺序表、链表、栈、队列、堆。。。…...

java程序员要了解的sql语句优化技巧大全

sql语句规范 MySQL在Linux系统下数据库名&#xff0c;表名&#xff0c;存储过程名&#xff0c;函数名称&#xff0c;触发器名称等区分大小写&#xff0c;列名不区分大小写&#xff0c;原因是这些操作系统下文件名称区分大小写。 MySQL在Windows系统下全部不区分大小写&#xf…...

SQL零基础入门学习(十)

SQL零基础入门学习&#xff08;九&#xff09; SQL CREATE DATABASE 语句 CREATE DATABASE 语句用于创建数据库。 SQL CREATE DATABASE 语法 CREATE DATABASE dbname;SQL CREATE DATABASE 实例 下面的 SQL 语句创建一个名为 “my_db” 的数据库&#xff1a; CREATE DATAB…...

Pytorch从零开始训练模型【识别数字模型】并测试

1 准备数据集 import torch import torchvision # 去网上下载CIFAR10数据集【此数据集为经典的图像数字识别数据集】 # train True 代表取其中得训练数据集&#xff1b; # transform 参数代表将图像转换为Tensor形式 # download 为True时会去网上下载数据集到指定路径【root】…...

Leetcode DAY 44: 完全背包 and 零钱兑换 II and 组合总和 Ⅳ

完全背包518. 零钱兑换 II&#xff01;&#xff01;&#xff01;程序未通过原因&#xff1a; 1、dp数组的初始化没考虑清楚 2、组合问题 dp数组的更新没考虑清楚 修改后&#xff1a; class Solution { public:int change(int amount, vector<int>& coins) {// dp[j…...

谷歌搜索留痕的技术公式【2023年新版】

本文主要分享谷歌搜索留痕的技术公式&#xff0c;让你更简单的去学习谷歌留痕的技术原理 本文由光算创作&#xff0c;有可能会被修改和剽窃&#xff0c;我们佛系对待这样的行为吧。 谷歌搜索留痕的技术公式是什么&#xff1f; 答案是&#xff1a;需要做排名的关键词海量能搜…...

2023财年Q4业绩继续下滑,ChatGPT能驱动英伟达重回巅峰吗?

近年来&#xff0c;全球科创风口不断变换&#xff0c;虚拟货币、元宇宙等轮番登场&#xff0c;不少企业匆忙上台又很快谢幕&#xff0c;但在此期间&#xff0c;有些企业扮演淘金潮中“卖水人”的角色&#xff0c;却也能够见证历史且屹立不倒。不过&#xff0c;这并不意味着其可…...

博客管理系统--项目说明

项目体验地址&#xff08;账号&#xff1a;123&#xff0c;密码&#xff1a;123&#xff09;http://120.53.20.213:8080/blog_system/login.html项目码云Gitee地址&#xff1a;https://gitee.com/GoodManSS/project/tree/master/blog_system&#xff08;一&#xff09;准备工作…...

一文带你了解MySQL的Server层和引擎层是如何交互的?

对于很多开发小伙伴来说&#xff0c;每天写SQL是必不可少的一项工作。 那不知道大家有没有深入了解过&#xff0c;当我们的一条SQL命令被执行时&#xff0c;MySQL是如何把数据从硬盘/内存中查出来并展示到用户面前的呢&#xff1f; 其实&#xff0c;MySQL也没有大家想象的那么…...

CVNLP 常用数据集语料库资源汇总

​ 深度学习常用数据集汇总CVClassificationNLPSentiment AnalysisText ClassificationDialogue Generation其他AudioMulti-ModalClassificationSearch & MatchingImage CaptioningVisualQATri-Modal其他CV ghcnclimate_sphereModelNet40Shrec17 data labelcosmo Spherica…...

lisp 表达式求值规则

lisp 表达式求值规则 一个要求值的 lisp 对象被称为lisp表达式&#xff08;form&#xff09;。 lisp 表达式分三种 1. 自求值表达式。前面说过数字、字符串、向量都是自求值表达式。还有两个特殊的符号 t 和 nil 也可以看成是自求值表达式。 2. 符号表达式。符号的求值…...

Sophos Firewall OS (SFOS) 19.5 MR1 - 同步下一代防火墙

Sophos Firewall OS (SFOS) 19.5 MR1 - 同步下一代防火墙 请访问原文链接&#xff1a;https://sysin.org/blog/sfos-19-5/&#xff0c;查看最新版。原创作品&#xff0c;转载请保留出处。 作者主页&#xff1a;www.sysin.org Sophos Firewall v19.5 现已推出 Sophos Firewall…...

为什么很多人转行IT考虑后端开发Java?

顺应互联网时代发展的选择 在计算机广泛运用于社会的各个角落的今天&#xff0c;选择学习一门计算机语言真的很不错&#xff0c;它会让你的生活从此与众不同。软件渗透到组织的运营和管理的后台之中&#xff0c;形成了组织运营支撑平台。这种形态是传统软件的重要应用场景。在…...

MCP3208 SPI驱动开发:嵌入式多通道12位ADC实战指南

1. MCP3208 ADC驱动库深度解析&#xff1a;面向嵌入式工程师的SPI模数转换实战指南MCP3208是Microchip公司推出的8通道、12位分辨率、逐次逼近型&#xff08;SAR&#xff09;模数转换器&#xff0c;采用标准四线SPI接口通信&#xff0c;支持单端与差分输入模式&#xff0c;工作…...

Agent--多轮对话系统设计6道高频考题解析

去年面试某大厂AI岗位&#xff0c;多轮对话这块被追问了好几道题&#xff0c;有些问题当时答得磕磕绊绊&#xff0c;回来后我把相关知识点重新梳理了一遍。这次复盘把面试中遇到的核心问题分享出来&#xff0c;希望对准备面试的同学有点帮助。真题现场&#xff1a; 面试刚开始&…...

CyberChef:数据处理的万能工具箱

CyberChef&#xff1a;数据处理的万能工具箱 【免费下载链接】CyberChef The Cyber Swiss Army Knife - a web app for encryption, encoding, compression and data analysis 项目地址: https://gitcode.com/GitHub_Trending/cy/CyberChef 数据处理的困境与破局之道 你…...

从Async到Sync,从SDR到DDR:一次NAND Flash接口升级引发的“血案”与调试实录

从Async到Sync&#xff0c;从SDR到DDR&#xff1a;一次NAND Flash接口升级引发的“血案”与调试实录 那天下午&#xff0c;当示波器上扭曲的DQS信号波形终于变得规整时&#xff0c;我瘫坐在工位上&#xff0c;手里的咖啡早已凉透。这次NAND Flash接口升级引发的连锁反应&#…...

Android购物商城APP实战:从零到一构建核心功能模块

1. 项目功能模块拆解与实现路径 一个完整的购物商城APP通常包含四大核心模块&#xff1a;用户系统、商品展示、购物车管理和订单处理。这就像搭建一个实体商店&#xff0c;需要先规划好门面&#xff08;登录注册&#xff09;、货架&#xff08;商品展示&#xff09;、购物篮&am…...

行业研究报告怎么选:看清咨询公司的“真本事”

一、为什么大家都在找“靠谱的行业研究报告”这几年&#xff0c;不论是创业公司做战略决策&#xff0c;还是大型企业布局新业务&#xff0c;几乎都有一个共识——决策要有数据、有研究、有趋势支撑。于是&#xff0c;“行业研究报告”成了商业决策的必备工具&#xff0c;但市场…...

`claude code --print` 核心含义与用法指南

claude code --print 核心含义与用法指南 --print(简写为-p)是Claude Code CLI的非交互模式参数,用于执行单个查询后直接输出结果并退出,不进入交互式会话。这是自动化脚本、管道操作和CI/CD集成的核心工具。 一、核心定义与作用 特性 说明 全称/简写 --print / -p 核心功…...

Ostrakon-VL终端部署案例:单卡3090实现12路摄像头并发扫描

Ostrakon-VL终端部署案例&#xff1a;单卡3090实现12路摄像头并发扫描 1. 项目背景与核心价值 在零售与餐饮行业&#xff0c;传统的图像识别系统往往面临两个痛点&#xff1a;一是工业级UI操作复杂&#xff0c;员工培训成本高&#xff1b;二是多路摄像头并发处理需要昂贵的高…...

倒反天罡了!Cursor自研模型反超Opus 4.6!价格脚踝斩,氛围编程沸腾了

因公众号更改推送规则&#xff0c;请点“在看”并加“星标”第一时间获取精彩技术分享点击关注#互联网架构师公众号&#xff0c;领取架构师全套资料 都在这里0、2T架构师学习资料干货分上一篇&#xff1a;2T架构师学习资料干货分享大家好&#xff0c;我是互联网架构师&#xff…...

Kandinsky-5.0-I2V-Lite-5s实际作品展示:黄昏女孩转头推进镜头高清视频集

Kandinsky-5.0-I2V-Lite-5s实际作品展示&#xff1a;黄昏女孩转头推进镜头高清视频集 1. 惊艳效果开场 Kandinsky-5.0-I2V-Lite-5s带来的动态视觉体验令人惊叹。想象一下&#xff1a;一张静态的黄昏人像照片&#xff0c;在短短几秒内变成了一段生动的短视频——女孩缓缓转头&…...