洛谷P1290欧几里德的游戏——题解

题目传送

题面:

 

 题解:

首先当一个数是另一个数的整数倍时,当前的人显然是必胜的。
设当前的两个数为i,j,且i>j,有两种情况:

当i>=2j时,当前的人必胜,下面是证明:

  假定i=kj+l其中l = i % j,k = i / j,根据假设,k>=2,此时讨论是否必胜状态d(j,l)的可能情况:

  若d(j,l)为必胜状态(即当时的操作者有必胜策略(不管对方怎么走,自己都有应对方法来保证自己赢)),则当前操作者可以转移到d(j+l,j)。此时,轮到对手操作。因为必须要取正整数堆较小的,所以只能转移到d(j+l-j,j)即d(j,l)这个必胜状态上。那么,当前的操作者胜利。

  若d(j,l)为必败状态,其实是类似的,可以直接转移从d(i,j)至d(j,l),把必败状态留给后手。得证!

当j<i<2j时,此时下一个状态必是d(i-j,j),递归计算就好

posted @ 2020-05-18 23:05  千叶繁华  阅读(173)  评论(0编辑  收藏  举报