问题
有n堆石子,第i堆有
个,每次可以取走任意一堆的任意多个,可以取完但不能不取。取走最后一个的胜利。
结论
当且仅当
,先手必败
首先考虑必败情况,即对方拿走了最后一个,此时a全部为0,显然有异或和为0,败了。
然后是,对于异或和不为0的情况,设异或和为x,最高位的1在第k位,那么一定有一个数 最高位1也在k位,显然 小于 ,我们从这一堆中挑选出来一部分拿走,就一定可以把异或和重新置为0。
而当为0的时候,例如此时轮到甲操作,此时是甲的必败状态,因为取走一部分后必败状态被打破,对方取走后又可以恢复甲的必败状态,因此甲必败。
也就是说如果一开始异或和为0,先手就已经到发了必败点,如果不为0,也先手取走一部分后,异或和为0,轮到后手,相当于后手到达了必败点,先手必胜。