VIP和普通用户排队

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

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

我的思路是:

  • 构造两个队列deque,分别用于存储vip和普通用户的到达时间和处理时间
  • 构造一个堆heapq,用于存储m个窗口的处理完事件的时间
  • 每次从heapq中弹出一个最小值t,即空闲窗口或者所有占用窗口最先结束的窗口
    • 比较vip和普通用户队列中的最小值A_m,优先选vip队列的到达时间,对应的处理时间为P_m
    • 如果t比A_m小,说明窗口空闲,将t变成A_m+P_m
    • 如果t比A_m大,说明窗口没有空闲的,直接将t变成t+P_m
相关推荐
信奥卷王5 小时前
[GESP202609 六级] 分树规划
算法
夏幻灵5 小时前
LeetCode 21:合并两个有序链表——双指针与哑节点详解
算法·leetcode·链表
徐小黑ACG7 小时前
Golang 基础05 结构体struct
开发语言·算法·golang
Navigator_Z7 小时前
LeetCode //C - 1286. Iterator for Combination
c语言·算法·leetcode
北极有牛8 小时前
cpp学习笔记--常量指针
java·开发语言·算法
GPU实战笔记8 小时前
云端 GPU 训练的账户余额提醒:它能说明什么,不能说明什么?
深度学习·算法·成本管理·gpu云计算·云端训练
浮链序8 小时前
怎么证明"你这个模型是偷我的"——把蒸馏变成取证工具
算法·安全·llm
小O的算法实验室8 小时前
IEEE TMC,面向异构物联网的多目标量子行为拓扑优化算法
算法
liliangcsdn9 小时前
派息率指标的应用探索和分析
大数据·算法