设函数 f(k)(n);
则:
f(1)(n)=1;
f(2)(n)=f(1)(0)+f(1)(1)+f(1)(2)+...+f(1)(n);
f(3)(n)=f(2)(0)+f(2)(1)+f(2)(2)+...+f(2)(n);
.
.
.
f(k)(n)=f(k-1)(0)+f(k-1)(1)+...+f(k-1)(n);
可预处理。
附代码:
1 #include <iostream> 2 #include <cstring> 3 using namespace std; 4 5 int main (){ 6 int n,k; 7 int f[110][110]; 8 memset (f,0,sizeof f); 9 for (int i=0;i<=100;i++) 10 f[1][i]=1; 11 for (int i=2;i<=100;i++){ 12 for (int j=0;j<=100;j++){ 13 for (int o=0;o<=j;o++) 14 f[i][j]=(f[i][j]+f[i-1][o])%1000000; 15 } 16 } 17 while (cin>>n>>k&&(n+k)){ 18 cout<<f[k][n]<<endl; 19 } 20 return 0; 21 }