topcoder SRM144 DV1 550 解析

本文探讨了组合数学中的经典问题:如何计算将1至m个数放入n个桶中,允许重复且需排序的方法总数。通过引入变量变换和应用挡板法或母函数方法,提供了两种解决思路。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

    最难的一个是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)



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值