题解

cookiebus 2023-10-03 6:12:24 13 返回题目

首先需要有光速gcd的小技巧,这个是显然的就不多说了(详见std,看看就会了)。

此外,1号点显然不会出局,我们把这个圈圈旋转一下使得环变成链。

如何加速这个过程呢?

用双向链表把他们串起来,然后第一遍的时候暴力枚举,把可以删掉的元素标记一下,加到一个队列中来。

然后每一轮,暴力枚举队列中所有的元素,在双向链表中把它删除,如果这个点的L可以kick R,并且L和R都是存活状态,那么就标记R,把R加到下一个队列中去。

复杂度显然是O(N*gcd)。

{{ vote && vote.total.up }}