[N][N][N]のgrundy数を求めることを考えます.
[2][2][2]~[2M−1][2M-1][2M−1]のgrundy数は000です.[2M][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]\})g[n]=mex({i+j=n になるような i,j における[i]⊕[j]})
nnnの小さい方から順にこれを求めて行くことで,[N][N][N]のgrundy数をO(N2)\mathrm{O}(N^2)O(N2)で求めることができます.
参考コードは以下です.