如果你用的 SG函数直接计算的话,检查你辅助计算 mex 值的数组是不是开在外面了。
需要开在函数里面,让每个状态的的 mex 单独计算。
像这样
int SG(int x,int y){
if(sg[x][y]!=-1)return sg[x][y];
//!这个f数组是定义在函数内部,不能在函数外部
int f[205]={};
for(int i=2;i<=x-2;i++)f[SG(i,y)^SG(x-i,y)]=1;
for(int j=2;j<=y-2;j++)f[SG(x,j)^SG(x,y-j)]=1;
//? 求mex函数,f数组是辅助数组
for(int i=0;i<=200;i++){
if(!f[i])return sg[x][y]=i;
}
}