[ABC320E] Somen Nagashi 题解

原题链接

洛谷链接

题意

思路

分别维护两个信息:在排队的人中编号最小的人和不在排队的人中最早回来的人

每次分配面条前先处理一下不在排队的人中最早回队的能否在当前时间之前赶回来,如果能赶回来,就将他重新放在排队的人中,并继续考虑下一个不在排队的人。

最后选排队的人中编号最小的拿走当前的面条,并将它放到不在排队的人的集合中。

可以用优先队列或 set 维护上面所说的两个信息,具体实现很好写,时间复杂度
\(O((n+m)\log n)\) 级别。
代码

posted @ 2023-09-24 19:48  week_end  阅读(5)  评论(0编辑  收藏  举报