子集反演
子集反演
对于两个集合的函数 \(f_S, g_S\):
\[f(S) = \sum_{T \subseteq S} g(T) \iff g(S) = \sum_{T \subseteq S} (-1)^{\lvert S \rvert - \lvert T \rvert} f(T)
\]
\(\tt{Proof}\)
证明一下,从等式右侧开始推:
\[\begin{align*}
\sum_{T \subseteq S} (-1)^{\lvert S \rvert - \lvert T \rvert} f(T)
& = \sum_{T \subseteq S} (-1)^{\lvert S \rvert - \lvert T \rvert} \sum_{Q \subseteq T} g(Q) \\
& = \sum_Q g(Q) \sum_{Q \subseteq T \subseteq S} (-1)^{\lvert S \rvert - \lvert T \rvert}
\end{align*}
\]
后半部分求和与 \(Q\) 无关, 将后半部分剔除:
\[= \sum_Q g(Q) \sum_{ T \subseteq (S \setminus Q)} (-1)^{\lvert S \setminus Q \rvert - \lvert T \rvert}
\]
记关于集合 \(P\) 的函数 \(\displaystyle F(P) = \sum_{T \subseteq P} (-1)^{\lvert P \rvert - \lvert T \rvert}\), 并且进行化简:
\[F(P) = \sum_{i = 0}^{\lvert P \rvert} \binom{\lvert P \rvert}{i} (-1)^{\lvert P \rvert - i} = \sum_{i = 0}^{\lvert P \rvert} (1 - 1)^{\lvert P \rvert} = 0^{\lvert P \rvert}
\]
由此, 原式子的值为:
\[\sum_Q g(Q) \sum_{ T \subseteq (S \setminus Q)} (-1)^{\lvert S \setminus Q \rvert - \lvert T \rvert} = \sum_Q g(Q) \cdot F(S \setminus Q) = \sum_Q g(Q) \cdot 0^{\lvert S \setminus Q \rvert}
\]
分析发现, 当且仅当 \(S \setminus Q = \emptyset\) 时有 \(0^0 = 1\), 此时 \(Q = S\), 对答案的贡献就是 \(g(S)\), 所以有:
\[\sum_Q g(Q) \cdot 0^{\lvert S \setminus Q \rvert} = g(S)
\]
\(\mathcal{Q. E. D.}\)
应用
核心: 「包含」和「恰好」之间的转化.
待补.
 
                    
                
 
                
            
         浙公网安备 33010602011771号
浙公网安备 33010602011771号