///s[]:可以取走的石子个数
///sg[]:0~n的SG函数值
///hash[]:mex{}
///N位求解范围
int s[N],sg[N],Hash[N];
void getSG(int n)///n为s的长度
{
int i,j;
memset(sg,0,sizeof(sg));
for(i=1;i<=n;i++)
{
memset(Hash,0,sizeof(Hash));
for(j=1;s[j]<=i;j++)
Hash[sg[i-s[j]]]=1;
for(j=0;j<=n;j++)///求mes{}中未出现的最小的非负整数
{
if(Hash[j]==0)
{
sg[i]=j;
break;
}
}
}
}