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
相关推荐
CoderCodingNo3 小时前
【NOIP】2011真题解析 luogu-P1003 铺地毯 | GESP三、四级以上可练习
算法
iFlyCai3 小时前
C语言中的指针
c语言·数据结构·算法
查古穆3 小时前
栈-有效的括号
java·数据结构·算法
再一次等风来3 小时前
近场声全息(NAH)仿真实现:从阵列实值信号到波数域重建
算法·matlab·信号处理·近场声全息·nah
汀、人工智能3 小时前
16 - 高级特性
数据结构·算法·数据库架构·图论·16 - 高级特性
大熊背3 小时前
利用ISP离线模式进行分块LSC校正的方法
人工智能·算法·机器学习
XWalnut4 小时前
LeetCode刷题 day4
算法·leetcode·职场和发展
蒸汽求职4 小时前
机器人软件工程(Robotics SDE):特斯拉Optimus落地引发的嵌入式C++与感知算法人才抢夺战
大数据·c++·算法·职场和发展·机器人·求职招聘·ai-native
AI成长日志4 小时前
【笔面试算法学习专栏】双指针专题·简单难度两题精讲:167.两数之和II、283.移动零
学习·算法·面试
旖-旎5 小时前
分治(库存管理|||)(4)
c++·算法·leetcode·排序算法·快速选择算法