今天某个比赛挂了,现在还很痛...
直接扣题:最经典的nim游戏,n堆石子,每次选一堆,问先手是否有必胜测略。现在略为改动:每次可以选1..k堆,每堆选若干,先手是否必胜。
一开始各种百度题解不过无解,至少我没找到。然后类比了一晚上,想想xor的那个证明的大概思路得出结论,把每堆石子的个数换成2进制,相应的位求出1的个数,如果所以的位的1的个数mod (k+1) 为0, 则sg=0, 先手必败. 否则必胜.!
至于证明其实严格的我也不会, 大概就是因为每次只能更改最多k个值, 所以如果sg为0, 那么下一步必定存在某些位1的个数改变, 但改变的个数<=k, 则sg!=0, 否则...嗯大概就这样!