Description
两人轮流操作两堆初始数量分别为(a,b(a,bleq2^{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,yequiv0(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 xinmathbb{N}^*),结论成立。
所以只要(a,b)中有一个模5余1,4,5就是先手必胜,否则后手必胜。
Code
不想写了
P.S.
hzwer的博弈论第一题就让我推了这么半天orz