任给N堆石子,每堆石子个数为N[i]个,两人轮流从任一堆中任取(每次只能取自一堆),第N[i]堆石子每次最多取M[i]个,取最后一颗石子的一方获胜.问先取的人如何获胜?
令A[i]=N[i]%(M[i]+1);
flag=A[0]^A[1]^A[2]······A[N];(^表示异或)
如果flag=0,先取者败,否则后取者败;
任给N堆石子,每堆石子个数为N[i]个,两人轮流从任一堆中任取(每次只能取自一堆),第N[i]堆石子每次最多取M[i]个,取最后一颗石子的一方获胜.问先取的人如何获胜?
令A[i]=N[i]%(M[i]+1);
flag=A[0]^A[1]^A[2]······A[N];(^表示异或)
如果flag=0,先取者败,否则后取者败;