放苹果

来源:互联网 发布:种植头发的效果 知乎 编辑:程序博客网 时间:2024/04/28 23:41
问题描述:

         把M个同样的苹果放在N个同样的盘子里,允许有的盘子空着不放,问共有多少种不同的分法?(用K表示)5,1,1和1,5,1 是同一种分法。

Input

第一行是测试数据的数目t(0 <= t <= 20)。以下每行均包含二个整数M和N,以空格分开。1<=M,N<=10。

Output

对输入的每组数据M和N,用一行输出相应的K。

Sample Input

1
7 3

Sample Output

8
f(m,n)=f(m-n,n)+f(m,n-1)
f(m,n)表示将m个苹果放到n个盘中的方法数。
f(m-n,n)表示先拿n个苹果每个盘中放一个,保证每个盘中都有苹果
f(m,n-1)表示至少有一个盘中没有苹果。
显然f(m,n)=f(n-m,n)+f(m,n-1);
特殊情况考虑:若n>m,f(m,n)=f(m,m);f(m,0)=0;f(m,1)=1;f(1,m)=1;

考虑不允许为空情况:

           M个苹果放入N个盘中。若M <N,0种。M==N,1种情况。M>N时,我们这样考虑,先将N个苹果放入N个盘中,每个盘放一个。然后考虑将剩下的M-N个苹果放入M-N个盘中,允许为空即可。

原创粉丝点击