每天一道博弈论之"pb的游戏(1)"(口胡)

   https://www.luogu.org/problemnew/show/P3150

  题目大意:

    两个人在玩游戏,一开始有一个数x,先手方把他拆分成两个数a和b,使得(a+b==x,a>0,b>0),然后后手方选择其中一个数按之前规则拆分,另一个数就被丢掉,然后先手方再从两个数中选择一个... ...

    若其中一人无法操作,则输。

  题解:

    我们考虑末状态(1,1),两个奇数。

    假如我们面对的两个数中有一个偶数(或者一开始面对一个偶数),那么我们一定可以把这个偶数分解成两个奇数,而奇数只能分解成一个奇数和一个偶数,所以下次你面临的状态还是有一个偶数。

    反复下去可以发现你面临的状态都有偶数,而对面面临的状态都是两个奇数,数字一直在减小(也就是说游戏不是无限的),那么只可能对手面临终态(必败态),你就赢了。

    反过来,如果你先手面临奇数,那必然要给对方留下偶数,你就输了。

    综上,x为偶数时先手必胜,否则必败。

  代码就判断个奇偶,没有放的必要了==

    

posted @ 2018-03-02 22:38  zubizakeli  阅读(174)  评论(0编辑  收藏  举报