两个数 n,m,求 用 m 个 [0,n] 的整数相加使其和为 n 的方案数。
#include <iostream>
#include <cstring>
#include <sstream>
using namespace std;
const int N =102;
const int mod =1e6;
int n,m,f[N][N];
void sov(){
memset(f,0,sizeof f);
int i,j,k;
for(i=0;i<=n;i++) f[i][1]=1;
for(k=1;k<=m;k++)
for(j=0;j<=n;++j)
for(i=0;i<=j;i++)
f[j][k]+=f[j-i][k-1], f[j][k]%=mod;
cout<<f[n][m]<<endl;
}
signed main(){
while(cin>>n>>m,n||m){
sov();
}
}
浙公网安备 33010602011771号