【BZOJ】3028: 食物-生成函数&莱布尼茨公式

传送门:bzoj3028


题解

Step 1

构造生成函数:
A ( x ) = 1 1 − x 2 A(x)=\dfrac 1{1-x^2} A(x)=1x21
B ( x ) = 1 + x B(x)=1+x B(x)=1+x
C ( x ) = 1 + x + x 2 C(x)=1+x+x^2 C(x)=1+x+x2
D ( x ) = x 1 − x 2 D(x)=\dfrac {x}{1-x^2} D(x)=1x2x
E ( x ) = 1 1 − x 4 E(x)=\dfrac{1}{1-x^4} E(x)=1x41
F ( x ) = 1 + x + x 2 + x 3 F(x)=1+x+x^2+x^3 F(x)=1+x+x2+x3
G ( x ) = 1 + x G(x)=1+x G(x)=1+x
H ( x ) = 1 1 − x 3 H(x)=\dfrac 1{1-x^3} H(x)=1x31

全部卷积起来就是: x ( 1 − x ) 4 \dfrac{x}{(1-x)^4} (1x)4x

Step 2

f ( x ) = x ( 1 − x ) 4 f(x)=\dfrac{x}{(1-x)^4} f(x)=(1x)4x
花式求解 [ x n ] [x^n] [xn]

泰勒展开

[ x n ] = f ( n ) ( 0 ) n ! [x^n]=\dfrac{f^{(n)}(0)}{n!} [xn]=n!f(n)(0)

引入莱布尼茨公式:
( f ∗ g ) ( n ) = ∑ i = 0 n ( n i ) f ( i ) g ( n − i ) (f *g)^{(n)}=\sum\limits_{i=0}^n\binom{n}{i}f^{(i)}g^{(n-i)} (fg)(n)=i=0n(in)f(i)g(ni)
证明略。

f ( x ) = x , g ( x ) = ( 1 − x ) − 4 f(x)=x,g(x)=(1-x)^{-4} f(x)=x,g(x)=(1x)4

由于 f i = 0 ( i ≠ 1 ) f^i=0(i\neq 1) fi=0(i̸=1),所以只需要求 g ( n − 1 ) ( 0 ) g^{(n-1)}(0) g(n1)(0) ( n + 2 ) ! 6 \dfrac{(n+2)!}{6} 6(n+2)!

a n s = n ( n + 2 ) ! n ! 6 = n ( n + 1 ) ( n + 2 ) 6 ans=n\dfrac{(n+2)!}{n!6}=\dfrac{n(n+1)(n+2)}{6} ans=nn!6(n+2)!=6n(n+1)(n+2)

广义二项式定理

( x + y ) a = ∑ i = 0 ∞ ( a i ) x i y a − i (x+y)^a=\sum\limits_{i=0}^{\infty}\binom{a}{i}x^i y^{a-i} (x+y)a=i=0(ia)xiyai

其中 a &lt; 0 a&lt;0 a<0 ( a i ) = ∏ k = 0 i − 1 ( a − k ) i ! \binom{a}{i}=\dfrac{\prod\limits_{k=0}^{i-1}(a-k)}{i!} (ia)=i!k=0i1(ak)

广义二项式展开 ( 1 − x ) − 4 = ∑ i = 0 ∞ ( − 4 i ) ( − x ) i (1-x)^{-4}=\sum\limits_{i=0}^{\infty}\binom{-4}{i}(-x)^i (1x)4=i=0(i4)(x)i

[ x n ] = ( − 1 ) n − 1 ( − 4 n − 1 ) = ∏ i = 0 n − 2 ( 4 + i ) ( n − 1 ) ! = n ( n + 1 ) ( n + 2 ) 6 [x^n]=(-1)^{n-1}\binom{-4}{n-1}=\dfrac{\prod\limits_{i=0}^{n-2}(4+i)}{(n-1)!}=\dfrac{n(n+1)(n+2)}{6} [xn]=(1)n1(n14)=(n1)!i=0n2(4+i)=6n(n+1)(n+2)

组合意义

1 1 − x = ∑ i = 0 ∞ x i \dfrac{1}{1-x}=\sum\limits_{i=0}^{\infty}x^i 1x1=i=0xi
表示选任意个的生成函数。

1 ( 1 − x ) 4 \dfrac{1}{(1-x)^4} (1x)41即为选四个自然数和为特定值的方案数。

插板法 ( n − 1 + 3 3 ) = n ( n + 1 ) ( n + 2 ) 6 \dbinom{n-1+3}{3}=\dfrac{n(n+1)(n+2)}{6} (3n1+3)=6n(n+1)(n+2)

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值