算法随笔——二项式反演
第一种形式
有 n个限制,\(f_k\) 表示恰好满足k个限制,\(g_k\) 表示选择 \(k\) 个限制,满足这些限制其他不管的选择方案。
\[\large {g_k = \sum_{i=k}^{n} {i\choose k} \times f_i }
\]
\[\large {f_k = \sum _{i=k}^{n}{i\choose k} \times (-1)^{i-k} * g_i}
\]
第一行可以根据定义推出。
\(i\) 实际上枚举的是 \(g\) 实际上满足了多少个限制,那么在 \(i\) 之中任选 \(k\) 个数都可以满足要求。
第二行是反演的结论。
第二种形式
鸽。
二项式反演(Binomial Inversion)是组合数学中处理“恰好”与“至多/至少”之间数量转换的核心工具,本质上是容斥原理的代数形式。
在处理类似 CF2145G 这种带限制的计数问题时,熟练使用以下几种形式可以极大简化推导过程。
1
这种形式常用于已知“由 \(n\) 种元素选出 \(i\) 种的属性之和”,求“恰好具有 \(n\) 种属性”的情况。
-
关系式:
\[f_n = \sum_{i=0}^{n} \binom{n}{i} g_i \iff g_n = \sum_{i=0}^{n} (-1)^{n-i} \binom{n}{i} f_i \] -
直观理解:
- \(f_n\):从 \(n\) 个元素中选出若干个(最多 \(n\) 个)满足某种条件的方案数(通常容易计算)。
- \(g_n\):恰好使用 \(n\) 个元素且满足条件的方案数(目标结果)。
2
有时候下标的指向是相反的,这种形式在处理“至少”逻辑时非常有用。
-
关系式:
\[f_k = \sum_{i=k}^{n} \binom{i}{k} g_i \iff g_k = \sum_{i=k}^{n} (-1)^{i-k} \binom{i}{k} f_i \] -
应用场景:
- \(f_k\):从 \(n\) 个属性中选出 \(k\) 个,并保证这 \(k\) 个属性一定具备(其余属性随意)的方案数。
- \(g_k\):恰好具备 \(k\) 个属性的方案数。
- 注意: 这里的 \(f_k\) 通常计算方式是 \(\binom{n}{k} \times \text{后继情况}\)。

浙公网安备 33010602011771号