topcoder SRM144 DV1 550 解析

来源:互联网 发布:阿里云code 怎么使用 编辑:程序博客网 时间:2024/05/16 12:11

    最难的一个是1~m共m个数,放到n个格子里,可重复但要排序的方法总数。这是一个组合数学题目。

    题解:

    假设1~m各选了x1,x2,...xn个,xi>=0. 那么x1+x2+....+xm = n. 再变换一下,令yi= xi +1 :

                   y1+y2+...ym = m+n ; yi >0

    这样的话就可以有两种思路求解了。

    第一种:m+n个求要分成m分,每一份不为空。高中的挡板法即可。从m+n-1个空中,选m-1个空放挡板,正好分成m分,每一份不为空。

总数为C(m+n-1,m-1)=C(m+n-1,n)

    第二种:用母函数,G(x) = (x+x^2+x^3+...)*(x+x^2+x^3+...)*...  *(x+x^2+x^3+...)=(x+x^2+x^3+...)^m=(x/1-x)^m, 然后将这个展开的到x^n的系数为C(m+n-1,n)



原创粉丝点击