【CTS2019】珍珠(计数,容斥,NTT)

题意:称一个长度为 \(n\),值域为 \([1,D]\) 整数序列为合法序列,当且仅当序列中能选出 \(m\) 对数相等。问合法序列数。

\(1\leq D\leq 10^5,1\leq n,m\leq 10^9\)

题解:

\(c_i\) 表示数 \(i\) 在序列中的出现次数,那么限制转化成:

\[\sum_{i=1}^D \lfloor\frac{c_i}{2}\rfloor\geq m \]

\(\lfloor\dfrac{c_i}{2}\rfloor\) 转化为 \(\dfrac{c_i-c_i\bmod 2}{2}\),这样做的好处是 \(\sum c_i\) 是固定的,于是限制就能转化成:

\[\sum_{i=1}^D c_i\bmod 2\leq n-2m \]

左式的取值范围是 \([0,D]\),所以若右式 \(n-2m\) 不在这个范围的话,可以直接特判掉,现在只考虑 \(n-2m\in [0,D]\) 的情况。

现在我们只关心 \(c_i\) 的奇偶性。

\(f_k\) 表示钦定 \(k\)\(c_i\) 为奇数的方案数,求出 \(f\) 之后恰好为 \(k\) 个的方案数可以卷出来。

对于一种 \(c_i\),强制钦定它为奇数的 EGF 为 \(\{0,1,0,1,\cdots\}=\dfrac{e^x-e^{-x}}{2}\),否则任选的 EGF 为 \(e^x\)

于是:

\[\begin{aligned} f_k&=\binom{D}{k}[x^n]\left(\dfrac{e^x-e^{-x}}{2}\right)^k\left(e^x\right)^{D-k}\\ &=\binom{D}{k}\frac{1}{2^k}[x^n]\sum_{i=0}^k\binom{k}{i}(-1)^{k-i}e^{(D-2k+2i)x}\\ &=\binom{D}{k}\frac{1}{2^k}\sum_{i=0}^k\binom{k}{i}(-1)^{k-i}\frac{(D-2k+2i)^n}{n!}\\ \end{aligned} \]

卷一下即可。

代码咕了。

posted @ 2022-10-28 20:39  ez_lcw  阅读(10)  评论(0编辑  收藏  举报