CF 282D Yet Another Number Game

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的思路,即找最小的可达的必败态。

你可能感兴趣的:(CF 282D Yet Another Number Game)