Loading

EGF 练习题(近期总结 2024.3.6)

Luogu5401 珍珠

题意:有 \(n\) 个变量,取值范围均为 \([1,D]\) 中的整数。求有多少种取值方案,使得可以选出至少 \(m\) 对变量满足每对都相等。

\(1\le D\le 10^5,\space 0\le m\le n,\space 1\le n\le 10^9\)


注意到 \(D\) 很小,我们可以计算出个数为奇数的值最多 \(n-2m\) 个,偶数最少为 \(t=\max(0,D-n+2m)\)。设 \(g[i]\) 表示恰好 \(i\) 个值出现偶数次的方案数。

二项式反演,设 \(f[i]\) 表示钦定 \(i\) 个值出现偶数次的方案数。

因为是有标号算多重集,所以使用 EGF。对于每个值,钦定出现次数为偶数的 EGF 为 \(\sum\limits_{i=0} \dfrac{x^i+(-x)^i}{2i!}=\dfrac{e^x+e^{-x}}2\),不钦定的 EGF 为 \(e^x\)

那么

\[\begin{aligned} f[k] &= {D \choose k} [x^n](\frac{e^x+e^{-x}}2)^k * (e^x)^{D-k} \\ &= {D \choose k} \frac 1{2^k} [x^n] (e^x+e^{-x})^k * e^{(D-k)x} \\ &= {D \choose k} \frac 1{2^k} [x^n] \sum_{i=0}^k {k \choose i} e^{ix} * e^{(i-k)x} * e^{(D-k)x} \\ &= {D \choose k} \frac 1{2^k} [x^n] \sum_{i=0}^k {k \choose i} e^{(D+2i-2k)x} \\ &= {D \choose k} \frac 1{2^k} \sum_{i=0}^k {k \choose i} (D+2i-2k)^n \\ &= {D \choose k} \frac {k!}{2^k} \sum_{i=0}^k \frac {(D+2i-2k)^n}{i!} \cdot \frac 1{(k-i)!} \end{aligned} \]

直接 NTT,二项式反演用差卷积,时间 \(O(D(\log D+\log n))\)记录


Luogu5850 calc(加强版)

题意:对于所有满足每个数是整数且 \(\in[1,k]\),两两互不相同的 \(a_{1...n}\),求 \(\prod_{i=1}^n a_i\) 的和,对 \(998244353\) 取模。这里给出 \(m\),需要对所有 \(n\in[1,m]\) 求解。

\(1\le m\le 5\times 10^5,\space m\le k<998244353\)


相当于 \(1,2,...,k\) 中选择 \(n\) 个数,求乘积之和,最后乘上 \(n!\)

写成 OGF 的形式就是 \([x^n] \prod_{p=1}^k (1+px)\),我们要求的是这个东西。

考虑转 ln 再转 exp,为 \(\exp (\sum_{p=1}^k \ln(1+px))\)

我们现在的算的就是形如 \(\ln(1+px)\) 这样的东西,暴力求解:

\[\begin{aligned} \ln(1+px) &= \int \frac p{1+px} \\ &= \int p \sum_{i=0} (-p)^ix^i \\ &= p\sum_{i=1} \frac {(-p)^{i-1}}i x^i \\ &= -\sum_{i=1} \frac {(-p)^i} i x^i \end{aligned}\]

考虑对 \(p=1...k\) 对上式求和

\[\begin{aligned} \sum_{p=1}^k \ln(1+px) &= -\sum_{p=1}^k \sum_{i=1} \frac {(-p)^i} i x^i \\ &= -\sum_{i=1} \frac{(-1)^i}i x^i \sum_{p=1}^k p^i \end{aligned}\]

考虑后面的部分 \(\sum_{p=1}^k p^i\) 的 EGF

\[\begin{aligned} G(x) &= \sum_i x^i \cdot \frac{\sum_{p=1}^k p^i}{i!} \\ &= \sum_{p=1}^k \sum_i \frac{p^i}{i!}x^i \\ &= \sum_{p=1}^k e^{px} \\ &= \frac{e^{(k+1)x}-1}{e^x-1} \end{aligned}\]

时间复杂度 \(O(m\log m)\)记录


Luogu5162 WD 与积木

题意:有 \(1...n\)\(n\) 个数,分成若干个内部无序的集合,然后把这些集合有顺序地排列起来,每种可能的方案出现概率相等,求期望划分的集合个数,答案模 \(998244353\)。多测,有 \(T\) 组数据。

\(1\le T\le 10^5,\space 1\le n\le 10^5\)


分开两部分计算:方案数 和 所有方案中集合个数总和。

先算方案数,枚举集合个数 \(i\),由于有标号所以是 EGF。

单个集合的 EGF:\(\sum_{i=1} \frac{1}{i!} x^i=e^x-1\)

总方案数:

\[\begin{aligned} [x^n] \sum_{i=0} (e^x-1)^i &= [x^n] \frac 1{1-(e^x-1)} \\ &= [x^n] \frac 1{2-e^x} \end{aligned}\]

接下来算所有方案中集合个数总和:

\[\begin{aligned} [x^n] \sum_{i=0} i(e^x-1)^i &= [x^n] \frac 1{(1-(e^x-1))^2} \\ &= [x^n] \frac 1{(2-e^x)^2} \end{aligned}\]

预处理,时间 \(O(T+n\log n)\)


loj6503 「雅礼集训 2018 Day4」Magic

题意:有 \(n\) 个格子和 \(m\) 种颜色,求满足下列条件的染色方案总数:

  • 对于每个 \(i\in[1,m]\),恰好 \(a_i\) 个格子染上了颜色 \(i\)

  • 恰好有 \(k\) 对相邻格子染上了相同颜色。

答案对 \(998244353\) 取模。

\(m\le 2\times 10^4,\space 0\le k\le n\le 10^5,\space \sum\limits_{i=1}^m a_i=n\)


注意恰好,二项式反演。

\(k\) 对相邻格子颜色相同,相当于有 \(n-k\) 个极长相同颜色连续段。

考虑给每个颜色分配一些段,因为是多重集排列所以用 EGF。

颜色 \(c\) 的 EGF:$F_c(x)=\sum\limits_i \dfrac{a_c-1 \choose i-1}{i!} x^i $

然后分治卷积,时间 \(O(m\log m\log n)\)

posted @ 2024-03-06 22:11  Lgx_Q  阅读(51)  评论(0编辑  收藏  举报