东西用完之后要清空。
比如这样:
nd tim(nd a,nd b){ nd r; memset(r.f,0,sizeof(r.f)); for(int i=1;i<=n;i++){ for(int j=1;j<=n;j++){ for(int k=1;k<=n;k++){ r.f[i][j]=(r.f[i][j]+a.f[i][k]*b.f[k][j]%p)%p; } } } return r; }
检查你是否漏掉了 memset。