放苹果

放苹果

  • 描述
把M个同样的苹果放在N个同样的盘子里,允许有的盘子空着不放,问共有多少种不同的分法?(用K表示)5,1,1和1,5,1 是同一种分法。
  • 输入
第一行是测试数据的数目t(0 <= t <= 20)。以下每行均包含二个整数M和N,以空格分开。1<=M,N<=10。
  • 输出
对输入的每组数据M和N,用一行输出相应的K。
  • 样例输入
1
7 3
  • 样例输出
8

 1 #include<bits/stdc++.h>
 2 using namespace std;
 3 int f[11][11];
 4 int n , a , b ;
 5 int main(){
 6     cin >> n;
 7     for(int i = 1 ; i <= 10 ; ++ i) f[i][1] = 1 , f[1][i] = 1 , f[0][i] = 1 ;
 8     for(int i = 2 ; i <= 10 ; ++ i){//apple
 9         for(int j = 2 ; j <= 10 ; ++ j){//plate
10             if( i >= j ) f[i][j] = f[i][j-1] + f[i-j][j];
11             else f[i][j] = f[i][i];
12         }
13     }
14     for(int i = 1 ; i <= n ; ++ i){
15         cin >> a >> b ;
16         cout << f[a][b] <<endl;
17     }
18     return 0;
19 }

 

posted @ 2018-08-11 08:34  GCCCC  阅读(227)  评论(0)    收藏  举报