bzoj3028 食物 生成函数+广义二项式定理

首先我们有一些函数推收敛式的套路。

(这些是知名伪证,结论是对的,但是证明过程是胡扯)比如对于 y = 1 + x + x 2 y=1+x+x^2 y=1+x+x2 ,我们知道 x y = x + x 2 + x 3 xy=x+x^2+x^3 xy=x+x2+x3,所以有 x y − x 3 = y − 1 xy-x^3=y-1 xyx3=y1,即 y = 1 − x 3 1 − x y=\frac{1-x^3}{1-x} y=1x1x3。用类似的方法,我们还可以知道 ∑ i = 0 i n f = 1 1 − x \sum_{i=0}^{inf}=\frac{1}{1-x} i=0inf=1x1等。

然后我们写一下所有食物的生成函数:
汉堡: ∑ i = 0 i n f x 2 i = 1 1 − x 2 \sum_{i=0}^{inf} x^{2i} =\frac{1}{1-x^2} i=0infx2i=1x21
可乐: 1 + x 1+x 1+x
鸡腿: 1 + x + x 2 = 1 − x 3 1 − x 1+x+x^2=\frac{1-x^3}{1-x} 1+x+x2=1x1x3
蜜桃多: ∑ i = 0 i n f x i − ∑ i = 0 i n f x 2 i = x 1 − x 2 \sum_{i=0}^{inf} x^i -\sum_{i=0}^{inf} x^{2i}=\frac{x}{1-x^2} i=0infxii=0infx2i=1x2x
鸡块: ∑ i = 0 i n f x 4 i = 1 1 − x 4 \sum_{i=0}^{inf} x^{4i}=\frac{1}{1-x^4} i=0infx4i=1x41
包子: 1 + x + x 2 + x 3 = 1 − x 4 1 − x 1+x+x^2+x^3=\frac{1-x^4}{1-x} 1+x+x2+x3=1x1x4
土豆: 1 + x 1+x 1+x
面包: ∑ i = 0 i n f x 3 i = 1 1 − x 3 \sum_{i=0}^{inf}x^{3i}=\frac{1}{1-x^3} i=0infx3i=1x31

把它们全部乘起来得: x ( 1 − x ) 4 \frac{x}{(1-x)^4} (1x)4x,在这个多项式中, n n n次项的系数就是选 n n n个食物的方案数。
( 1 − x ) − 4 (1-x)^{-4} (1x)4展开。根据广义二项式定理,我们知道 k k k次项的系数为 ( − 1 ) k ( − 4 k ) (-1)^k(^k_{-4}) (1)k(4k) ,而
( k n ) = ∏ i = 0 k − 1 ( n − i ) k ! (_k^n)=\frac{\prod_{i=0}^{k-1} (n-i)}{k!} (kn)=k!i=0k1(ni)
所以 ( 1 − x ) − 4 (1-x)^{-4} (1x)4 n n n次项系数为 ( n + 1 ) ( n + 2 ) ( n + 3 ) 6 \frac{(n+1)(n+2)(n+3)}{6} 6(n+1)(n+2)(n+3)。又因为原多项式还要乘以一个 x x x,所以它的 n n n次项系数,也就是答案,就是 n ( n + 1 ) ( n + 2 ) 6 \frac{n(n+1)(n+2)}{6} 6n(n+1)(n+2)
然后边读入边取模什么的一下子就搞出来了。

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值