1188: [HNOI2007]*游戏

想了一下午,最后还是请教altf4主席做出来的。(查题解的过程中拓扑序一样学了一大堆博弈论问题)

每一个堆中的每个石子都是独立的,所以sg[i]表示第i堆有一个石子的sg值。所以这一堆的sg值= sg[i] xor 自己p[i]次。

对于第i 堆,sg[i]=mex{sg[j] xor sg[k]} (j>i,k>=j)。  所以n^3求出sg数组。

方案也可以用n^3的枚举解决(xor的逆运算是她自己)。

RunID User Problem Result Memory Time Language Code_Length Submit_Time
409659 lbz007 1188 Accepted 228 kb 40 ms Pascal/Edit 1192 B 2013-05-10 22:06:28
 View Code
原文地址:https://www.cnblogs.com/lbz007oi/p/3072183.html