只扔个板子吧 :
void get_sg(int n)
{
memset(sg,0,sizeof(sg));
for(int i=1;i<=n;i++)
{
memset(S,0,sizeof(S));
for(int j=1;f[j]<=i&&j<=m;j++)
{
S[sg[i-f[j]]]=1;
}
for(int k=0;k<=n;k++)
{
if(!S[k])
{
sg[i]=k;
break;
}
}
}
}