专栏文章

子集反演推到容斥原理

算法·理论参与者 1已保存评论 0

文章操作

快速查看文章及其快照的属性,并进行相关操作。

当前评论
0 条
当前快照
1 份
快照标识符
@min5ijx7
此快照首次捕获于
2025/12/01 20:54
3 个月前
此快照最后确认于
2025/12/01 20:54
3 个月前
查看原文

引入

子集反演又叫容斥原理的一般化,但我之前一直不知道怎么用子集反演推导容斥原理,现在终于会了。

推导

子集反演(补集形式)
f(S)=TSg(T)g(S)=TS(1)TSf(T)f(S) = \sum_{T\supseteq S} g(T) \Leftrightarrow g(S) = \sum_{T\supseteq S} (-1)^{|T|-|S|}f(T)
f(S):=钦定满足 S 中条件的元素个数=iSAif(S) := \text{钦定满足 S 中条件的元素个数} = \left| \bigcap_{i\in S}A_i \right|g(S):=恰好满足 S 中条件的元素个数g(S) := \text{恰好满足 S 中条件的元素个数}UU 为条件的全集,Ω\Omega 为统计对象的全集。
那么有
f(S)=STUg(T)f(S) = \sum_{S\subseteq T \subseteq U} g(T)
于是
g(S)=STU(1)TSf(T)g(S) = \sum_{S\subseteq T \subseteq U} (-1)^{|T|-|S|}f(T)
S=S=\varnothing 带入其中,得
g()=TU(1)TiTAig(\varnothing) = \sum_{T\subseteq U} (-1)^{|T|}\left| \bigcap_{i\in T}A_i \right|
又有
g()=ΩiUAig(\varnothing) = |\Omega| - \left| \bigcup_{i\in U}A_i \right|
于是得到
iUAi=TU(1)T1iTAi\left| \bigcup_{i\in U}A_i \right| = \sum_{\varnothing \subset T\subseteq U}(-1)^{|T|-1}\left| \bigcap_{i\in T}A_i \right|

评论

0 条评论,欢迎与作者交流。

正在加载评论...