简单反演
二项式反演
用于求解一类计数问题,可以认为是多步容斥的推广结论。
通常题目要求 “恰好有 \(k\) 个元素满足条件” 的方案总数 \(F(k)\),此时如果钦定至少 \(k\) 个元素满足条件的方案数 \(G(k)\) 容易求出:
因为有 \(G(k) = \sum\limits_{i = k}^n {i \choose k} F(i)\),可以利用二项式反演通过 \(G(k)\) 求出 \(F(k)\).
也可以对于符合其形式的函数进行互相计算。
-
形式一:\(F(n) = \sum\limits_{i = 0}^n (-1)^i G(i) \Leftrightarrow G(n) = \sum\limits_{i = 0}^n (-1)^i F(i)\).
-
形式二:\(F(n) = \sum\limits_{i = 0}^n {n \choose i} G(i) \Leftrightarrow G(n) = \sum\limits_{i = 0}^n (-1)^{n - i} {n \choose i} F(i)\).
-
形式三:\(F(n) = \sum\limits_{i = n}^m {i \choose n} G(i) \Leftrightarrow G(n) = \sum\limits_{i = n}^m (-1)^{i - n} {i \choose n} F(i)\).
-
高维二项式反演:\(F(N, M) = \sum\limits_{i = n}^N \sum\limits_{j = m}^{M} {N \choose i} {M \choose j} G(i, j) \Leftrightarrow G(N, M) = \sum\limits_{i = n}^N \sum\limits_{j = m}^{M} (-1)^{(N - i) + (M - j)} {N \choose i} {M \choose j} F(i, j)\).
关于上面的计数问题,有另一种 \(O(n^2)\) 的容斥是 \(F(i) = G(i) - \sum\limits_{j = i + 1}^n {j \choose i} G(j)\).
以及一些根据二项式定理推广出的容斥问题:
单位根反演
概念
单位根反演,顾名思义是基于单位根性质的反演,用于处理和取模有关的问题,或者在有关 FFT 的题目中进行特殊的构造(虽然还没做过)。
通常用单位根在模意义下的替代品原根。
反正没见过的模数原根统一猜 3
思路
- 性质:\([n \mid a] = \frac{1}{n} \sum\limits_{k = 0}^{n - 1} w_n^{ak}\).
可以导出:
- 单位根反演:\([a \equiv b \pmod n] = [a - b \equiv 0 \pmod n] = \frac{1}{n} \sum\limits_{k = 0}^{n - 1} w_n^{(a - b) k} = \frac{1}{n} \sum\limits_{k = 0}^{n - 1} w_n^{ak} w_n^{-bk}\).
通常当模数较小时可以考虑枚举余数,然后套上单位根反演。
求 \(\sum\limits_{i = 0}^n {n \choose i} s^i a_{i \bmod 4}\).
考虑枚举 \(i \bmod 4\) 的余数,化简得 \(\sum\limits_{i = 0}^n {n \choose i} s^i \sum\limits_{j = 0}^{3} [i \equiv j \pmod 4] a_j\).
根据单位根反演可知 \(\sum\limits_{i = 0}^n {n \choose i} s^i \frac{1}{4} \sum\limits_{j = 0}^3 a_j \sum\limits_{k = 0}^{3} w_4^{(i - j) k}\).
拆开单位根得到 \(\sum\limits_{i = 0}^n {n \choose i} s^i \frac{1}{4} \sum\limits_{j = 0}^3 a_j \sum\limits_{k = 0}^{3} w_4^{ik} w_4^{-jk}\).
交换求和顺序再整理得 \(\frac{1}{4} \sum\limits_{j = 0}^3 a_j \sum\limits_{k = 0}^3 w_4^{-jk} \sum\limits_{i = 0}^n {n \choose i} s^i\).
后面的和式可以二项式定理得 \(\frac{1}{4} \sum\limits_{j = 0}^3 a_j \sum\limits_{k = 0}^3 w_4^{-jk} (s w_4^k + 1)^n\).