HDU1847(巴什博弈)
- 思路:因为是最后一次取的人胜利(巴什博弈定义),所以对先手来说,要确保自己取完后后手不能立刻获胜
- 思考,当 n 为 2^k 时,先手胜利f;
- 当 n 不是 2 ^ k 时,先手要想获胜,就要保证在自己取数之后的状态是"后手"获胜的状态,
- 比如 n6 时,先手可以取1,2,4,又知道 n2,4,5 时状态为"先手"胜利,那么最终后手胜利
- 又当 n7 时,先手如果取4, 又知道 n3 时状态为"后手"胜利,所以最终先手胜利
- 进一步归纳,可以发现当n从1逐渐增加时,先后手的胜利者为 “先先后” 循环
- n==1,2,3(以及4,5,6)的情况易证明,当n>3时,令k=3z-2(z>=3且z是正整数)且k<=n<=k+2,那么k, k+1, k+2构成一个组
- 此时,k+1总是可以通过减去2得到上一组的最后一个值(后手胜利的状态),所以它是先手胜利的;
- k可以通过减去4得到上上组的最后一个值(后手胜利的状态),所以它也是先手胜利的;
- 而k+2减去一个2的幂后必然不能得到之前任何一组的最后一个值(因为这些值是3的倍数),所以它必然是后手胜利的