反演 & 二项式反演浅谈
例题:AT_abc423_f
令 \(F(S)\) 代表至少满足 \(S\) 内条件的天数,\(G(S)\) 代表刚好满足 \(S\) 内条件的天数。
首先有演绎式
\[F(S) = \sum_{S \subseteq T} G(T)
\]
反演得到
\[G(S) = \sum_{S \subseteq T} (-1)^{|T| - |S|} F(T)
\]
但是我们想要求的其实是
\[g(s) = \sum_{|S| = s} G(S)
\]
把她带进去可以得到
\[g(s) = \sum_{|S| = s}\sum_{S \subseteq T} (-1)^{|T| - |S|} F(T)
\]
但是我们想把 \(-1\) 提出来,所以交换求和符号
\[g(s) = \sum_{|T| \ge s}(-1)^{|T| - s}\sum_{|S| = s, S \subseteq T} F(T)
\]
发现后面的求和符号直接变成组合数了
\[g(s) = \sum_{|T| \ge s}(-1)^{|T| - s}\binom{|T|}{s} F(T)
\]
到这一步其实可以直接算了是吧,但是继续推,可以发现
\[g(s) = \sum_{t \ge s}(-1)^{t - s}\binom{t}{s} \sum_{|T| = t} F(T)
\]
令 \(f(t) = \sum_{|T| = t} F(T)\),可得
\[g(s) = \sum_{t \ge s}(-1)^{t - s}\binom{t}{s} f(t)
\]
这就变成了超集二项式反演的总和形式。
根据上述推导过程中 \(f, g\) 的定义,可以得到演绎的总和形式。
\[f(s) = \sum_{t \ge s}\binom{t}{s}g(t)
\]
所以,本篇题解从代数层面印证了:即使相同大小的集合产生的贡献不同,总和形式的二项式反演仍然可以使用。
我们进一步思考。对于这题,很朴素的方法是,对于每一个 \(m\) 大小的子集 \(S\),分别容斥(子集反演)求出 \(G(S)\) 后求和。但是这样其实是 \(\mathcal{O}(2^{2n})\) 的。
但是因为我们刚刚得出的结论,所以可以跨越对 \(m\) 大小子集的枚举,统一计算贡献。我们同时发现了,单价相同是使用二项式反演的充分条件,而非充要。

浙公网安备 33010602011771号