Vijos1655 - 萌萌的糖果博弈

Portal

Description

两人轮流操作两堆初始数量分别为\(a,b(a,b\leq2^{127})\)的石子。每人每次进行如下操作:

  • 取走一堆石子,并将另一堆分成两个非零堆。
    如果另一堆只剩下一个石子了,那么目前操作的人获胜。求先手是否必胜。

Solution

先找一波规律。将当前的人必胜的状态称为\(N\)-position,必败的状态称为\(P\)-position,则:
\(P \ 1 - P(0,1)\)
\(N \ 2 - N(1,1)\)
\(N \ 3 - N(1,2)\)
\(P \ 4 - N(1,3),P(2,2)\)
\(P \ 5 - N(1,4),P(2,3)\)
\(...\)
前面的数字\(x\)表示得到了一个两堆和为\(x\)的状态时,是必胜还是必败。如果\(x\)至少有一种分拆是\(P\),那么\(x\)就是\(P\)。因为只要存在\(P\),对手就可以将这个\(P\)-position给你从而获胜。那么在一个状态中,如果两堆石子存在\(P\)那么该状态是\(N\),否则该状态是\(P\)
找到的规律就是\(N\)-position和\(P\)-position是\(PNNPP\)五个一循环的。下面来证明一下。

依然是数学归纳法。
若对于正整数\(k\)\(\forall x \in [1,5k]\)结论成立。则
\(x,y\equiv0(mod\ 5),x+y=5k\)
\(P \ 5k+1 - N(x,y+1),N(x+2,y-1),P(x+3,y-2)\)
\(N \ 5k+2 - N(x,y+2),N(x+1,y+1),N(x+3,y-1)\)
\(N \ 5k+3 - N(x,y+3),N(x+1,y+2),N(x+4,y-1)\)
\(P \ 5k+4 - N(x,y+4),N(x+1,y+3),P(x+2,y+2)\)
\(P \ 5k+5 - N(x,y),N(x+1,y+4),P(x+2,y+3)\)
所以对于正整数\(k+1\)\(\forall x \in [1,5(k+1)]\)结论仍成立。
\(k=1\)时结论成立(见上方),所以\(\forall x\in\mathbb{N}^*\),结论成立。

所以只要\(a,b\)中有一个模5余1,4,5就是先手必胜,否则后手必胜。

Code

不想写了

P.S.

hzwer的博弈论第一题就让我推了这么半天orz

posted @ 2018-03-14 08:01  VisJiao  阅读(186)  评论(0编辑  收藏  举报