UVA 10943 How do you add?

设函数 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 }
原文地址:https://www.cnblogs.com/gfc-g/p/3848479.html