警钟撅烂 WA #7
查看原帖
警钟撅烂 WA #7
1054181
longlinyu7楼主2024/8/28 09:11

如果你用的 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;
    }
}
2024/8/28 09:11
加载中...