n=1 取完
n=2 威佐夫博弈
n=3 类似于尼姆博弈 其实就是尼姆博弈,因为如果a^b^c==0 那么(a-k)^(b-k)^(c-k)必不为0
另外n=3的时候可以用dp来搞 时间复杂度为O(n^3)
lose[i][j]=最小k使得(i,j,k)为必败态
los2[i][j]=最小k使得(k,k+i,k+i+j)为必败态
那么假如我当前状态为x,y,z
那么如果lose[x][y]<z的话代表我可以在第三堆取z-lose[x][y]个石子使之成为必败态
同理lose[x][z]<y lose[y][z]<x 都使得x,y,z为必胜。
另外 设los2[y-x][z-y]=k 这代表的必败状态为k,k+y-x,k+y-x+z-y 即x+k-x, y+k-x ,z+k-x
那么如果los2[y-x][z-y]<x 就是说我可以把x,y,z转化为x+k-x, y+k-x ,z+k-x的必败态。
这样的dp减少了如下不必要的状态:
较大的k使得(i,j,k)为必败态。因为如果我能从x,y,z转换到x,y,mink 我必然能从x,y,z转换到x,y,k(较大)
较大的k使得(k,k+i,k+i+j)为必败态。理由同上。
由此可以得出找必胜态的一种dp的思路,即找最小的可达的必败态。