版权声明:低调地前行,越努力越幸运! https://blog.csdn.net/SSYITwin/article/details/83089726
转载自:总结
真心感谢博主,终于知道为什么尼姆博弈用异或来解决。
SG函数模板:
void init()//根据题目要求进行修改
{
a[0]=1;
for(int i=1;i<=32;i++)
a[i]=a[i-1]*2;
}
void SG()
{
for(int i=1;i<=1000;i++)
{
memset(vis,0,sizeof(vis));
for(int j=0;a[j]<=i;j++)
{
vis[sg[i-a[j]]]=1;
}
for(int j=0;j<1000;j++)//寻找不属于mex{}集合 ,且最小的
{
if(vis[j]==0)
{
sg[i]=j;
break;
}
}
}
}