[N][N]のgrundy数を求めることを考えます.

[2][2][2M1][2M-1]のgrundy数は00です.[2M][2M]以降のgrundy数は以下で求めることができます.

g[n]=mex({i+j=n になるような i,j における[i][j]})g_{[n]} = \mathrm{mex}(\{i+j = n \ になるような\ i,j\ における [i] \oplus [j]\})

nnの小さい方から順にこれを求めて行くことで,[N][N]のgrundy数をO(N2)\mathrm{O}(N^2)で求めることができます.

参考コードは以下です.