[ABC320E] Somen Nagashi 题解
题意
略
思路
分别维护两个信息:在排队的人中编号最小的人和不在排队的人中最早回来的人。
每次分配面条前先处理一下不在排队的人中最早回队的能否在当前时间之前赶回来,如果能赶回来,就将他重新放在排队的人中,并继续考虑下一个不在排队的人。
最后选排队的人中编号最小的拿走当前的面条,并将它放到不在排队的人的集合中。
可以用优先队列或 set 维护上面所说的两个信息,具体实现很好写,时间复杂度
为 \(O((n+m)\log n)\) 级别。
代码