2018.12.31【NOIP训练】三七二十一(生成函数)

版权声明:转载请声明出处,谢谢配合。 https://blog.csdn.net/zxyoi_dreamer/article/details/85474350

传送门


解析:

n n 位数的答案为 a n a_n ,则显然 { a n } \{a_n\} 的生成函数为:
A ( x ) = ( 1 + x 2 2 ! + x 4 4 ! + . . . ) 2 × ( 1 + x 1 + x 2 2 ! + . . . ) 3 A(x)=(1+\frac{x^2}{2!}+\frac{x^4}{4!}+...)^2\times (1+\frac{x}{1}+\frac{x^2}{2!}+...)^3

对于这种同类排列需要去重,就需要指数型生成函数。当然现在拿到这样一个式子,如果你是真正的猛士,可以尝试暴力化简(也做得出来)。

一个稍微优美一点的方法是借助 e x e^x 的Taylor展开:
e x = i = 0 x n n ! = 1 + x + x 2 2 ! + x 3 3 ! + . . . e^x=\sum_{i=0}^\infty\frac{x^n}{n!}=1+x+\frac{x^2}{2!}+\frac{x^3}{3!}+...

那么我们有: e x = 1 x + x 2 2 ! x 3 3 ! + . . . e^{-x}=1-x+\frac{x^2}{2!}-\frac{x^3}{3!}+...

所以原式的第一部分化简为: 1 + x 2 2 ! + x 4 4 ! + . . . = ( e x + e x ) / 2 1+\frac{x^2}{2!}+\frac{x^4}{4!}+...=(e^x+e^{-x})/2

所以 A ( x ) = 1 4 ( e x + e x ) 2 × e 3 x = 1 4 ( e 5 x + 2 e 3 x + e x ) = 1 4 i = 0 ( 5 i + 2 × 3 i + 1 ) × x i i ! \begin{aligned} A(x)&=\frac{1}{4}(e^x+e^{-x})^2\times e^{3x}\\ &=\frac{1}{4}(e^{5x}+2e^{3x}+e^x)\\ &=\frac{1}{4}\sum_{i=0}^\infty (5^i+2\times 3^i+1)\times \frac{x^i}{i!} \end{aligned}

所以 a i = 1 4 ( 5 i + 2 × 3 i + 1 ) a_i=\frac{1}{4}(5^i+2\times 3^i+1)

这种难度全在推理的题就不放代码了,就一个快速幂。

猜你喜欢

转载自blog.csdn.net/zxyoi_dreamer/article/details/85474350