AtCoder Beginner Contest 278

G - Generalized Subtraction Game

题意

  • 给定 n,l,rn,l,r,你需要和交互器博弈。
  • 有一个长度为 nn 的区间,你和交互器轮流操作。
  • 每次操作,操作的一方选择一个没有被染黑并且长度在 llrr 之间的区间,把它染黑。
  • 无法操作的一方寄了,另一方获胜。

题解

直接求SG函数的话是 O(n3)O(n^3) 的,需要进行优化。

考虑模仿棋的策略,即选择中间的一段,将左右划分为两个长度相同的区间。此时先手必胜。但是,当 l=rl=rnl≢0(mod2)n-l\not\equiv 0\pmod 2 时策略会失效。此时,可以直接求SG函数,时间复杂度为 O(n2)O(n^2)


AtCoder Beginner Contest 278
https://je3ter.github.io/2023/07/09/ACM/AtCoder Beginner Contest 278/
作者
Je3ter
发布于
2023年7月9日
许可协议