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 = inom {D}{i} n! [x ^ n] (frac {e ^ x - e ^ {-x}}{2}) ^ i {e ^ x} ^ {(D - i)} ]

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

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

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

原文地址:https://www.cnblogs.com/psimonw/p/11545232.html