前置知识:SG函数
首先容易发现这是一个组合型组合博弈问题,因此我们先对于每一个子问题单独考虑
容易发现对于一个环我们进行第一次操作会把他拆成一个链,因此我们考虑链的\(SG\)函数
设\(f_i\)表示长为\(i\)的链的\(SG\)函数值,容易得到转移:
\[f_i = mex_{j \in [l,r],k=0 -> i-j}{f_k \oplus f_{i-j-k}}
\]
同理,设\(g_i\)表示长为\(i\)的环的\(SG\)函数值,容易得到转移:
\[g_i = mex_{j \in [l,r]}{f_{i-j}}
\]
然后打表后发现虽然\(f_i\)没什么规律,但是\(g_i\)有规律
\[g_i =
\begin{cases}
\lfloor \frac{i}{l} \rfloor,& (i < l + r) \\
0,& (i \geq l + r)
\end{cases}
\]
最终复杂度\(O(n)\),瓶颈在于并查集找环