只扔个板子吧 :
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; } } } }
来源:https://www.cnblogs.com/tlx-blog/p/12293737.html