很若只的研究
做完前面那道 CF 有感。
首先这是纯粹的自己研究的东西,没有任何教学价值,想找资料的去别处找吧()本文都省略求和积上下限因为我懒。
推个式子。
\[\left[x^ay^b\right]\prod (a_ix + b_iy + c_i)
\]
这玩意
组合意义等价于:有 \(n\) 个球,每个球有 \(a_i\) 种方案涂成红色,\(b_i\) 种方案涂成蓝色,\(c_i\) 种方案不涂,问涂成 \(a\) 个红色和 \(b\) 个蓝色的方案数。
那么可以这样。
\[[x^{a + b}] \prod \left((a_i + b_i) x + c_i\right)
\]
然后这玩意表示的就是,\(n\) 个球,涂出 \((a + b)\) 个有色球的方案数。
然后就要把 \(a + b\) 个有色球标准的分成 \(a\) 个红色球和 \(b\) 个蓝色球。
但是接下来这一步不能直接组合数。
再套一个多项式?
套套套!
原本可以这么做的原因是什么?每个数有一种可能去红球,一种可能去蓝球。
所以是:
\[[x ^ {a}] (x + 1)^{a + b} = \binom{a + b}{a}
\]
那么这里就是
\[[x^a] \prod (a_ix + b_i)
\]
把这俩乘起来就得到答案了
\[\left[x^ay^b\right]\prod (a_ix + b_iy + c_i) = \left([x^a] \prod (a_ix + b_i)\right) \left ([x^{a + b}] \prod \left((a_i + b_i) x + c_i\right)\right)
\]
更进一步地,看起来这玩意可以推广到无穷多项。
\[[x_1 ^ {q_1} \dots x _n ^ {q_n}] \prod \sum a_{ij} x_j \\
= \left([x^{q_1}] \prod (a_{i1}x + a_{i2}) \right)\left([x^{q_1 + q_2}] \prod ((a_{i1} + a_{i2}) x + a_{i3}) \right) \ldots \left(\left[x^ {\sum _ {i = 1} ^ {n - 1} q_i}\right] \prod \left(\sum_{i = 1} ^ {n - 1} a_{ij} \right)x + a_{in} \right)
\]
反正就是把这一坨乘起来就行了。
那理论上这玩意要做 \(n\) 项,每次都要分治 FFT 一下,时间复杂度 \(O(n ^ 2 \log^2 n)\)。
暂时没什么用的样子()
有什么办法通过推柿子优化下吗?这就是我这几天要研究的问题了。
因为众所周知第一类斯特林数是可以 \(n \log n\) 的嘛。

浙公网安备 33010602011771号