其他分享
首页 > 其他分享> > 容斥原理

容斥原理

作者:互联网

一般化,有若干个物品,若干个属性,每个物品有若干个属性(可能没有)。现在要求有属性的物品的总数。

我们要求的,就是拥有某一个属性的总数,减去拥有某两个属性的总数,加上拥有某三个属性的总数,依次类推。

应用

直接容斥

固定什么是物品,什么是属性,然后直接根据定义直接容斥。

硬币购物

一种付款方案是物品,第 \(i\) 种硬币是否过度使用是属性,然后容斥。

二项式反演

\[f(n) = \sum \limits_{i= 0}^n \binom{n}{i}g(i) \Longleftrightarrow g(n)=\sum\limits_{i =0}^n(-1)^{n-i}\binom{n}{i}g(i) \]

【题解】CF1516E Baby Ehab Plays with Permutations

莫比乌斯反演

\[F=f*1\Longleftrightarrow f = F * \mu \]

子集反演

\[f(S)=\sum\limits_{T\subseteq S}g(T) \]

\[g(S)=\sum\limits_{T\subseteq S}(-1)^{|S|-|T|}f(T) \]

二项式反演是特殊形式的子集反演,当函数 \(f,g\) 只与集合大小有关时这就是二项式反演。

一般配合子集卷积。

FWT

\[FWT(a)_i = \sum\limits_{j\oplus i=i} a_i \]

当 \(\oplus = or\) 时,\(FWT(a)=merge(FWT(a_0),FWT(a_0)+FWT(a_1))\)

当 \(\oplus = and\) 时,\(FWT(a)=merge(FWT(a_0)+FWT(a_1),FWT(a_1))\)

当 \(\oplus = xor\) 时,\(FWT(a)=merge(FWT(a_0)+FWT(a_1),FWT(a_0)-FWT(a_1))\)

\(IFWT\) 直接逆运算即可,不用考虑顺序。

\(Min-Max\) 容斥

\[\min\{S\}=\sum\limits_{T\subseteq S}(-1)^{|T|+1}\max\{T\} \]

\[\max\{S\}=\sum\limits_{T\subseteq S}(-1)^{|T|+1}\min\{T\} \]

这玩意对期望也成立。

\[E(\min\{S\})=\sum\limits_{T\subseteq S}(-1)^{|T|+1}E(\max\{T\}) \]

\[E(\max\{S\})=\sum\limits_{T\subseteq S}(-1)^{|T|+1}E(\min\{T\}) \]

一般化

\[\max_k\{S\}=\sum\limits_{T\subseteq S}(-1)^{|T|+k}\binom{|T|-1}{k-1}\min\{T\} \]

\[\min_k\{S\}=\sum\limits_{T\subseteq S}(-1)^{|T|+k}\binom{|T|-1}{k-1}\max\{T\} \]

这样我们将求第 \(k\) 大元素转化为求最小元素。

为啥这阴间玩意总是和期望出在一起(

标签:limits,min,sum,容斥,反演,FWT,原理,subseteq
来源: https://www.cnblogs.com/SharpnessV/p/14985468.html