容斥原理

经典容斥

设有一些集合为 S 1 , S 2 , ⋯   , S n S_1,S_2,\cdots,S_n S1,S2,,Sn,则经典容斥说明 ∣ S 1 ∪ S 2 ∪ ⋯ ∪ S n ∣ = ∑ t = 1 n ( − 1 ) t − 1 ∑ T 是 长 为 t 的 1 , 2 , ⋯   , n 的 子 序 列 ∣ S T 1 ∩ S T 2 ∩ ⋯ ∩ S T t ∣ |S_1\cup S_2\cup\cdots\cup S_n|=\sum_{t=1}^n(-1)^{t-1}\sum_{T是长为t的1,2,\cdots,n的子序列}|S_{T_1}\cap S_{T_2}\cap\cdots\cap S_{T_t}| S1S2Sn=t=1n(1)t1Tt1,2,,nST1ST2STt ∣ S 1 ∩ S 2 ∩ ⋯ ∩ S n ∣ = ∑ t = 1 n ( − 1 ) n − t ∑ T 是 长 为 t 的 1 , 2 , ⋯   , n 的 子 序 列 ∣ S T 1 ∪ S T 2 ∪ ⋯ ∪ S T t ∣ |S_1\cap S_2\cap\cdots\cap S_n|=\sum_{t=1}^n(-1)^{n-t}\sum_{T是长为t的1,2,\cdots,n的子序列}|S_{T_1}\cup S_{T_2}\cup\cdots\cup S_{T_t}| S1S2Sn=t=1n(1)ntTt1,2,,nST1ST2STt
当所有的集合的大小相同时,上式可简化为 ∣ S 1 ∪ S 2 ∪ ⋯ ∪ S n ∣ = ∑ t = 1 n ( − 1 ) t − 1 ( n t ) ∣ S 1 ∩ S 2 ∩ ⋯ ∩ S t ∣ |S_1\cup S_2\cup\cdots\cup S_n|=\sum_{t=1}^n(-1)^{t-1}\binom nt|S_{1}\cap S_{2}\cap\cdots\cap S_{t}| S1S2Sn=t=1n(1)t1(tn)S1S2St ∣ S 1 ∩ S 2 ∩ ⋯ ∩ S n ∣ = ∑ t = 1 n ( − 1 ) n − t ( n t ) ∣ S 1 ∪ S 2 ∪ ⋯ ∪ S t ∣ |S_1\cap S_2\cap\cdots\cap S_n|=\sum_{t=1}^n(-1)^{n-t}\binom nt|S_{1}\cup S_{2}\cup\cdots\cup S_{t}| S1S2Sn=t=1n(1)nt(tn)S1S2St
因此,经典容斥实现了并与交的转换,又称并交容斥。

常见的应用是对于某一限制条件,我们要求每个元素都不满足该条件的方案数,即若定义每个集合为“该元素不满足条件,其它元素任意”,则要求的是这些集合的并的大小。由并交容斥,我们只需要计算所有的交即可,即须计算所有的“这些元素满足条件,其它元素任意”的集合大小。

拆分容斥

设有一种特定的东西A,设 f ( x ) f(x) f(x)为包含 x x x个A的方案数。设B是若干个S的组合,设 g ( x ) g(x) g(x)为包含 x x x个B的方案数。则拆分容斥说明 g ( x ) = ∑ i = x { i x } f ( i ) g(x)=\sum_{i=x}\begin{Bmatrix}i\\x\end{Bmatrix}f(i) g(x)=i=x{ix}f(i) f ( x ) = ∑ i = x ( − 1 ) i − x [ i x ] g ( i ) f(x)=\sum_{i=x}(-1)^{i-x}\begin{bmatrix}i\\x\end{bmatrix}g(i) f(x)=i=x(1)ix[ix]g(i)

约数容斥

用莫比乌斯反演。
g ( n ) = ∑ d ∣ n f ( d ) g(n) = \sum_{d \mid n} f(d) g(n)=dnf(d) f ( n ) = ∑ d ∣ n μ ( n d ) g ( d ) f(n) = \sum_{d \mid n} \mu(\frac{n}{d}) g(d) f(n)=dnμ(dn)g(d)

子集容斥

用子集反演。
g ( S ) = ∑ T ⊆ S f ( T ) g(S) = \sum_{T \subseteq S} f(T) g(S)=TSf(T) f ( S ) = ∑ T ⊆ S ( − 1 ) ∣ S ∣ − ∣ T ∣ g ( T ) f(S) = \sum_{T \subseteq S} (-1)^{\lvert S \rvert - \lvert T \rvert} g(T) f(S)=TS(1)STg(T)

造词真有意思

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值