loj3120. 「CTS2019 | CTSC2019」珍珠

题意

你有\(n\)个物品,每个物品的颜色\(c \in [1, D]\),你可以给这些物品同色的两两配对,求满足配对数大于等于\(m\)的染色方案数。
\(n, m \leq 1e9, D \leq 1e5\)

题解

问题等价于求满足有奇数个物品的颜色数不超过\(n - 2m\)个的染色方案数。
\(f_{i, j}\)代表考虑前\(i\)个物品后,有\(j\)种颜色有奇数个物品的方案数。这个东西是比较高档的暴力。
再说说正解。
由于\(n, m\)都很大,所以考虑生成函数。
对于某种颜色,有奇数个物品的生成函数为\(\frac {e ^ x - e ^ {-x}}{2}\)
\(f_i\)表示至少\(i\)种颜色有奇数个物品的方案数。
则有

\[f_i = \binom {D}{i} n! [x ^ n] (\frac {e ^ x - e ^ {-x}}{2}) ^ i {e ^ x} ^ {(D - i)} \]

整理一下式子,最终可以得到

\[f_i = \frac{i! \binom{D}{i}}{2 ^ i} \sum_{j = 0} ^ i (-1) ^ j \frac{(D - 2j) ^ n}{j! (i - j)!} \]

ntt得到\(f\)后再二项式反演一下即可。

posted @ 2019-09-18 20:45  psimonw  阅读(222)  评论(0编辑  收藏  举报