HDU Hide-And-Seek Game

发布时间 2023-07-21 00:00:28作者: 谭皓猿

HDU Hide-And-Seek Game

题意

\(n\) 个位置,给定 \(k\),两人轮流操作。

1.选择长度小于等于 \(k\) 的非空位置删除。
2.选择连续 \(k\) 个非空位置删除,要求删除出后所在的连续段变为非空的个连续段。

无法操作者输,为谁必胜。

题解

不是很会博弈论,但还是打表切了。
用类似 1010 的形式来表示一个局面,用 \(sg(n,k)\) 全为 \(1\),给定 \(k\)\(SG\) 函数值。
从一个小例子来看出改怎么做,此时 \(n=4,k=2\)
1111->1001
显然只能这样转移至后继局面。
注意到两边的 \(1\) 其实相当于 \(n=1\) 的全 \(1\) 情况,两边来操作其实就是一个组合游戏。
所以就进入了一个子问题,可以扩展到多个的情况,可得:

\[sg(n,k) = mex_{i=1}^{n-k-1} sg(i,k) \oplus sg(n-k-i,k) \]

边界情况为:

\[\begin{cases} n \leq k,sg(n,k)=1\\ n = k+1,sg(n,k)=0\\ \end{cases} \]

然后打个表就能发现规律,结论为:
\(n \leq k\),则先手必胜。
否则 $n-k \equiv 1 \pmod{2+4k} $,成立则后手必胜,反之先手必胜。
特判 \(0\)
正解有点 \(hard\),待补。