18105 银行的叫号顺序

### 详细分析

为了模拟银行的叫号过程,我们可以使用优先队列(堆)来管理客户的服务顺序。优先级越高的客户会先得到服务,同级别的客户按到达时间先后顺序得到服务。如果优先级和到达时间都相同,则按输入顺序服务。

### 思路

1. **优先队列**:使用优先队列来管理客户,优先级高的客户先服务,同级别的客户按到达时间先后顺序服务。如果优先级和到达时间都相同,则按输入顺序服务。
2. **模拟服务过程**:每5分钟服务一个客户,如果没有客户则等待5分钟。
3. **输入处理**:读取输入的客户信息,并按到达时间排序。

### 伪代码

```plaintext
function serve_customers(n, customers):
    priority_queue = empty priority queue
    current_time = 0
    customer_index = 0

    while customer_index < n or not priority_queue.empty():
        while customer_index < n and customers[customer_index].arrival_time <= current_time:
            priority_queue.push(customers[customer_index])
            customer_index += 1

        if not priority_queue.empty():
            customer = priority_queue.pop()
            print(customer.name)
        current_time += 5
```

### C++代码

#include <iostream>
#include <queue>
#include <vector>
#include <string>using namespace std;struct Customer {int arrival_time;int priority;string name;int index;bool operator<(const Customer& other) const {if (priority == other.priority) {if (arrival_time == other.arrival_time) {return index > other.index;}return arrival_time > other.arrival_time;}return priority < other.priority;}
};int main() {int n;scanf("%d", &n);vector<Customer> customers(n);for (int i = 0; i < n; ++i) {cin >> customers[i].arrival_time >> customers[i].priority >> customers[i].name;customers[i].index = i;}priority_queue<Customer> pq;int current_time = 0;int customer_index = 0;while (customer_index < n || !pq.empty()) {while (customer_index < n && customers[customer_index].arrival_time <= current_time) {pq.push(customers[customer_index]);customer_index++;}if (!pq.empty()) {Customer customer = pq.top();pq.pop();cout << customer.name << endl;}current_time += 5;}return 0;
}


 

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

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

相关文章

表达式求值 - 整形提升和截断

文章目录 一、整形提升二、为什么要整形提升&#xff1f;三、截断四、示例1&#xff0c;23① c1 c2② c3 c1 c2 4 一、整形提升 C语言的整形算数运算总是至少以缺省整形类型的精度来进行的。 为了获得这个精度&#xff0c;表达式中的字符类型和短整型操作数在使用之前被转换…

深度学习基础之前馈神经网络

目录 基本结构和工作原理 神经元和权重 激活函数 深度前馈网络 应用场景 优缺点 深度前馈神经网络与卷积神经网络&#xff08;CNN&#xff09;和循环神经网络&#xff08;RNN&#xff09;的具体区别和联系是什么&#xff1f; 具体区别 联系 如何有效解决前馈神经网络…

爬虫案例4——爬取房天下数据

简介&#xff1a;个人学习分享&#xff0c;如有错误&#xff0c;欢迎批评指正 任务&#xff1a;从房天下网中爬取小区名称、地址、价格和联系电话 目标网页地址&#xff1a;https://newhouse.fang.com/house/s/ 一、思路和过程 目标网页具体内容如下&#xff1a; ​​​​ …

成为Python砖家(3): 何时产生字节码 .pyc 文件

好奇&#xff1a;.pyc和 __pycache__是啥&#xff1f; 你是否好奇&#xff0c;在某些 Python 工程中&#xff0c;当执行了 xxx.py脚本后&#xff0c;多出了 __pycache__目录&#xff1f;这个目录下存放的是一些 .pyc结尾的文件。 这些文件&#xff0c;叫做 python bytecode。 …

深度剖析数字媒体产业链的无限潜力与创新生态

在当今信息爆炸的时代&#xff0c;数字媒体产业链正以势不可挡的姿态展现出其令人瞩目的无限潜力与创新生态。 数字媒体的发展潜力简直无可限量。从在线视频的爆发式增长&#xff0c;到虚拟现实和增强现实技术带来的沉浸式体验&#xff0c;再到社交媒体平台上丰富多彩的内容创…

Windows 应用程序加密 - 功能强大、可定制、开源且完全免费

先进而优雅的 Windows 应用程序加密 - 功能强大、可定制、开源且完全免费&#xff01; 项目地址&#xff1a;FadCrypt GitHub 工作原理&#xff1a; 1. 密码创建&#xff1a;设置密码后&#xff0c;密码会与锁定应用程序的配置文件一起加密保存。监控期间&#xff0c;这些文…

望繁信科技入选2024年第3批上海市高新技术成果转化项目名单

近日&#xff0c;上海望繁信科技有限公司&#xff08;以下简称“望繁信科技”&#xff09;凭借其自主研发的“数字北极星流程挖掘分析软件”项目&#xff0c;成功入选2024年第3批上海市高新技术成果转化项目名单。这一殊荣根据《上海市高新技术成果转化项目认定办法》&#xff…

linux 中docker git 容器磁盘占满如何解决

1.问题描述 git之前还使用ok&#xff0c;突然出现访问500 错误&#xff0c;懵圈了 2.问题排查 1. 服务器查看&#xff0c;服务正常&#xff0c;没有异常出现。 2. 查找资料&#xff0c;需要查看是否磁盘已经满了果然使用df-h 后显示磁盘已经满了&#xff0c;且容器和本地都…

WPF篇(20)- Menu菜单+ContextMenu上下文菜单+StatusBar状态栏

Menu菜单 Menu控件继承于MenuBase&#xff0c;而MenuBase继承于ItemsControl。所以学习Menu之前&#xff0c;要先了解一下MenuBase基类。它是一个抽象类&#xff0c;拥有一个ItemContainerTemplateSelector模板选择器&#xff0c;并重写了一些关于键盘和鼠标的方法。 Menu的子…

电脑监控怎样看回放视频?一键解锁电脑监控回放,守护安全不留死角!高效员工电脑监控,回放视频随时查!

你是否曾好奇那些键盘敲击背后的秘密&#xff1f;电脑监控不仅是守护企业安全的隐形盾牌&#xff0c;更是揭秘高效与合规的魔法镜&#xff01;一键解锁安企神监控回放&#xff0c;就像打开时间宝盒&#xff0c;让过去的工作瞬间跃然眼前。无论是精彩瞬间还是潜在风险&#xff0…

【Android】adb devices 出现devices offline的问题

1 问题 adb devices 出现devices offline 2 解决方法 adb kill-serveradb start-server 然后&#xff0c;adb devices查看。 adb devices 问题解决啦。。。&#x1f49b; &#x1f499; &#x1f49c; ❤️ &#x1f49a; &#x1f49b; &#x1f499; &#x1f49c; ❤️…

12/24/30v/36转固定5v输出芯片

设计电源芯片的应用方案时&#xff0c;必须保证输入电压在DC6V至30V范围内&#xff0c;输出电压为固定的5V&#xff0c;同时电流需在200至300mA之间。在这种需求下&#xff0c;推荐使用AH1405芯片&#xff0c;因其输入电压范围宽&#xff08;6-40V&#xff09;&#xff0c;内置…

自闭症寄宿语言开发全托学校

在自闭症儿童的世界里&#xff0c;语言往往是一座难以跨越的高山。语言问题作为自闭症儿童的核心障碍之一&#xff0c;给他们的生活、学习和社交带来了极大的困扰。因此&#xff0c;语言开发对于自闭症儿童来说至关重要。那么&#xff0c;怎样才能更好地对自闭症儿童进行语言开…

arthas源码刨析:启动 (1)

文章目录 arthas-bootBootstrap Created with Raphal 2.3.0 开始 检查监听端口 jps 列表java应用 下载 lib 依赖 功能移交给 arthas-core 结束 arthas-boot 该module 的代码只有3个类&#xff1a; Bootstrap 启动类 Bootstrap &#xff0c;开头的注解就是 alibaba 的 cli 中…

Qt 0820作业

一、思维导图 二、闹钟 头文件代码 #ifndef WIDGET_H #define WIDGET_H#include <QWidget> #include <QTime> //时间类 #include <QTimer> //时间事件类 #include <QTimerEvent> //定时器事件类 #include <QMouseEvent> //鼠标…

CSS 元素的尺寸

const dom document.querySelector(‘.size’) 以下方法只是拿的width举例 浏览器渲染管线 dom.style.width: 它读取/设置的是浏览器渲染管线的第一个步骤dom解析,也就是DOM树 比如: <a style"width:100px"></a><a style"width: auto"&…

SAP B1 三大基本表单标准功能介绍-业务伙伴主数据(三)

背景 在 SAP B1 中&#xff0c;科目表、业务伙伴主数据、物料主数据被称为三大基本表单&#xff0c;其中的标准功能是实施项目的基础。本系列文章将逐一介绍三大基本表单各个字段的含义、须填内容、功能等内容。 附上 SAP B1 10.0 的帮助文档&#xff1a;SAP Business One 10…

Android常见界面控件(二)

目录 ​前言 一、 RadioButton控件 设置RadioGroup的监听事件 二、CheckBox控件 三、Toast类 改变Toast窗口的提示位置 四、EditText控件 常用属性 前言 在上一篇中&#xff0c;我们讲解了三个常见的控件&#xff1a;TextView控件、Button控件、ImageView控件&#xf…

【ARM+Codesys 客户案例 】RK3568/A40i/STM32+CODESYS在工厂自动化中的应用:PCB板焊接机

现代化生产中&#xff0c;电子元件通常会使用自动化设备来进行生产&#xff0c;例如像PCB&#xff08;印刷电路板&#xff09;的组装。但是生产过程中也会面临一些问题&#xff0c;类似于如何解决在PCB板上牢固、精准地安装各种组件呢&#xff1f;IBL Lttechnik GmbH公司的CM80…

5.Linux_Shell编程

概述 什么是shell脚本&#xff1a; Shell脚本是利用shell的功能所写的一个程序。这个程序是使用纯文本文件&#xff08;后缀为.sh&#xff09;&#xff0c;将一些shell的语法与命令&#xff08;含外部命令&#xff09;写在里面&#xff0c;搭配正则表达式、管道命令与数据流重…