注意到 0≤ai,所以如果你的组合数的杨辉三角像我这么写:
void init(){
for(int i=1;i<=1e4;i++){
for(int j=1;j<=min(i,(int)100);j++){
if(i==j) C[i][j]=1;
else if(j==1) C[i][j]=i;
else C[i][j]=C[i-1][j]+C[i-1][j-1],C[i][j]%=mod;
}
}
}
注意在循环里加:
cin >> k;
if(k==0) continue;
否则答案会变成 0,当然像题解那样写就没有问题了。