translate

[ABC297G] Constrained Nim 2

SG函数是本篇文章的先决条件。如果您不了解它,请参阅以往的ABC问题的解析文章。(类似问题:ABC255-G

在一个游戏问题中,尝试实验总是一个好主意。

在这个问题中,我们可以预期xSG f(x)满足以下公式:

xmod(L+R)L.

如果这个猜想成立,那么这个问题可以在 O(N) 的时间内解决。

现在我们来证明这个猜想是正确的。

(1)如果 x<L+R

  • 如果 0x<L,无法进行移动,所以 f(x)=0

  • 如果 Lx<2L,则由于 x<L+R,所以 xR<L,可以转移到格兰迪数为 0 的状态。此外,xL<L,所以无法转移到格兰迪数为 1 的状态。因此,f(x)=1

  • 如果 2Lx<3L,则由于 x<L+R,所以 xR<L,可以转移到格兰迪数为 0 的状态。此外,左端点 LxL2L,可以转移到 1,则 01 都有了,f(x)=2

  • 如果 3Lx<4L,则由于 x<L+R,所以 xR<L,可以转移到格兰迪数为 0 的状态。此外,左端点 2LxL3L,可以转移到 2,则 02 都有了,f(x)=3

通过重复上述讨论,我们可以证明对于 x<L+R,有 f(x)=xL

(2)如果 L+Rx<2(L+R)

  • 如果 L+Rx<L+R+L,则由于 LxR<2L,因此 RxL<L+R,无法转移到格兰迪数为 0 的状态。因此,f(x)=0

  • 如果 L+R+Lx<L+R+2L,根据相同的讨论,可以转移到格兰迪数为 0 的状态(L+RxL<2L+R),但是 L+R+LxXR2L,所以无法到 1f(x)=1

对于所有满足 L+Rx<2(L+R)x,相同的讨论成立。因此,对于 L+Rx<2(L+R),有 f(x)=xmod(L+R)L

(3)一般情况

如果 2(L+R)x,那么在我们的情况下,格兰迪数 f(x) 只取决于 f(xR),f(xR+1),,f(xL)。根据(2)(可以直接将(2)中的当作(1),相当于全部往前移动 L+R,等价),一般情况下有 f(x)=xmod(L+R)L

code

本文作者:wscqwq

本文链接:https://www.cnblogs.com/wscqwq/p/17652135.html

版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。

posted @   wscqwq  阅读(14)  评论(0编辑  收藏  举报
点击右上角即可分享
微信分享提示
评论
收藏
关注
推荐
深色
回顶
收起