https://www.luogu.org/problemnew/show/P3150
题目大意:
两个人在玩游戏,一开始有一个数x,先手方把他拆分成两个数a和b,使得(a+b==x,a>0,b>0),然后后手方选择其中一个数按之前规则拆分,另一个数就被丢掉,然后先手方再从两个数中选择一个... ...
若其中一人无法操作,则输。
题解:
我们考虑末状态(1,1),两个奇数。
假如我们面对的两个数中有一个偶数(或者一开始面对一个偶数),那么我们一定可以把这个偶数分解成两个奇数,而奇数只能分解成一个奇数和一个偶数,所以下次你面临的状态还是有一个偶数。
反复下去可以发现你面临的状态都有偶数,而对面面临的状态都是两个奇数,数字一直在减小(也就是说游戏不是无限的),那么只可能对手面临终态(必败态),你就赢了。
反过来,如果你先手面临奇数,那必然要给对方留下偶数,你就输了。
综上,x为偶数时先手必胜,否则必败。
代码就判断个奇偶,没有放的必要了==