算法随笔——二项式反演

第一种形式

有 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{后继情况}\)

posted @ 2024-07-18 16:11  codwarm  阅读(51)  评论(2)    收藏  举报