blog。很牛的题,想了差不多一个小时。
经典结论
此处 \(S\to T\) 表示状态 \(S\) 可以变成状态 \(T\)。
\(\textbf{Conclusion: }\) 若 \(\forall S\to T\to P\) 都有 \(S\to P\),则 \(S\) 为必胜态。(用中文讲:一个状态能到达它所能到达的状态所能到达的状态,则这个状态为必胜态。)
\(\textbf{Prove: }\) 若 \(T\) 为必败态,则 \(S\) 为必胜态。若 \(T\) 为必胜态,则必定 \(\exists P\) 是必败态,\(\because S\to P\),\(\therefore S\) 是必胜态(它能到达一个必败态)。
思路
你发现这道题是符合这个「经典结论」的。你又发现发现这一题的「间隔」很重要。
考虑最大值 \(p\) 与次大值 \(q\),我们有 \(q+1<p\) 时先手必胜。证明的话,
code,时间复杂度瓶颈在排序。