Loading

生成函数

巨佬的博客

普通生成函数

序列 \(a\) 的生成函数为 \(\sum\limits_{i=0}^n a_i x^i\)

指数级生成函数

序列 \(a\) 的指数级生成函数为 \(\sum\limits_{i=0}^n \frac{a_i x^i}{i!}\)

P2012 拯救世界2
\(ans= (\sum\limits_{i=0} \frac{x^i}{i!})^4 (\sum\limits_{i \bmod 2 = 1} \frac{x^i}{i!})^4 (\sum\limits_{i \bmod 2 = 0} \frac{x^i}{i!})^4\)
\(ans=e^{4x} (\frac{e^{x}-e^{-x}}{2})^4 (\frac{e^{x}+e^{-x}}{2})^4\)
\(ans=\frac{1}{2^8}e^{4x} (e^{2x}-e^{-2x})^4\)
然后展开就好了

P5401 [CTS2019] 珍珠
题解

奇偶
这题只要生成函数 : \((\sum\limits_{i=1}^{n}x^{a_i})^M [x^S]\)
然后考虑到这题只需要膜 \(2\), 于是就可以考虑 \((\sum\limits_{i=1}^{n} x^{a_i})^2 \equiv \sum\limits_{i=1}^{n} x^{2a_i} \pmod 2\)
然后这样子背包是 \(O(T nM\log M)\) 的。然后考虑优化。看到这个 \(a_i\) 比较小。然后考虑压一个 \(17\) 位,然后 \(bitset\) 做一下 \(dp\) 就好了。

P4389 付公主的背包
生成函数, 然后可以考虑先 Ln 然后再 Exp 回去。\(\ln(1 - x^V)\) 是有性质的,然后经过 推导 即可得到答案

P4705 玩游戏
十分巧妙,一个 trick, 同样是利用了多项式的 Ln。推导 (要注意看下面的部分!)

P5488 差分与前缀和
生成函数,以前缀和为例,生成函数为 \((1 + x + x^2 + ..)^k\) ,可用组合数直接求。

P5748 集合划分计数
首先枚举有多少个集合,得到指数级生成函数 \(F = \sum\limits_{i = 0} \frac{x^i}{i!} = e^x\), 不包含 \(0\), 因此为 \(e^x - 1\)
那么答案就是这个再做一遍指数级生成函数,为 \(e^{e^x - 1}\)

CF891E Lust
对于每一轮算贡献的思想。推导

posted @ 2020-10-15 13:35  zhoukangyang  阅读(20)  评论(0编辑  收藏  举报