VIP和普通用户排队

银行有m个接待窗口,用户分为vip和普通用户,vip可以插在普通用户的最前面。

  • 数据格式为(userType, ArrivalTime, ProcessTime),代表每个用户类型,到达时间和在窗口需要处理的时间。

我的思路是:

  • 构造两个队列deque,分别用于存储vip和普通用户的到达时间和处理时间
  • 构造一个堆heapq,用于存储m个窗口的处理完事件的时间
  • 每次从heapq中弹出一个最小值t,即空闲窗口或者所有占用窗口最先结束的窗口
    • 比较vip和普通用户队列中的最小值A_m,优先选vip队列的到达时间,对应的处理时间为P_m
    • 如果tA_m小,说明窗口空闲,将t变成A_m+P_m
    • 如果tA_m大,说明窗口没有空闲的,直接将t变成t+P_m
相关推荐
Sagittarius_A*38 分钟前
后量子密码|通识认知 03|量子威胁辟谣:Grover 算法对对称密码的影响与误区
算法·信息安全·密码学·量子计算·pqc·后量子密码
QAQo7T2 小时前
Python组蓝桥杯备赛超详细知识点总结笔记_排序算法篇
笔记·python·算法·蓝桥杯·排序算法
千里之行,始于足下sanhai2 小时前
P8686 [蓝桥杯 2019 省 A] 修改数组 - 数字魔法大冒险 题解
c++·算法·动态规划
小星星闪亮登场3 小时前
Codeforces Round 1115 ( Div. 2)
数据结构·c++·算法·贪心算法·排序算法·codeforces
计算机小白一个3 小时前
蓝桥杯 Java B 组之哈希表应用(两数之和、重复元素判断)
java·数据结构·算法·蓝桥杯
Loge编程生活3 小时前
打卡信奥刷题(3449)用C++实现信奥题 P10429 [蓝桥杯 2024 省 B] 拔河
开发语言·数据结构·c++·算法·青少年编程
2601_957174654 小时前
大模型算法 简单 容易 用这个方法
算法
VALENIAN瓦伦尼安教学设备4 小时前
激光对中仪采购要点
数据库·嵌入式硬件·算法
Forever Nore6 小时前
LeetCode 1 两数之和
算法·leetcode·职场和发展
To_OC6 小时前
LC 3 无重复字符的最长子串:从入门滑动窗口到优化写法,再也不怕面试官追问
javascript·算法·leetcode