定理
设S是一个有限集,(A_1,A_2,···,A_n)是S的n个子集,则
(|S-igcup_{i=1}^nA_i|=sum_{i=0}^n(-1)^icdotsum_{1 leq j_1< j_2···< j_ileq n}|igcap_{k=1}^{i}A_{j_k}|)((igcap emptyset=S))
若(xin S-igcup_{i=1}^{n}A_i),在(i=0)时被算了1遍
若(xin igcup_{i=1}^nA_i,xin A_{k1},A_{k2},A_{k3}···,A_{kl}),
(sum_{i=0}^l (-1)^icdot{l choose i}=(1-1)^l=0),因此x会被算0遍
综上该公式等式两边成立
应用
不定方程解的数量
求不定方程(x_1+x_2+···+x_k=n)的解的数量,(x_i)为整数,且(l_i leq x_i leq r_i(1leq ileq k))
令(:) (S={x_1+x_2+···+x_k=n的所有满足l_ileq x_i的解})
(quad A_i={ x_1+x_2+···+x_k=n的所有满足r_i < x_i的解})
则
(ans=|S-igcup_{i=1}^nA_i|=sum_{i=0}^n(-1)^icdotsum_{1 leq j_1< j_2···< j_ileq
n}|igcap_{k=1}^{i}A_{j_k}|)
求解(sum_{1 leq j_1< j_2···< j_ileq n}|igcap_{k=1}^{i}A_{j_k}|)
两种情况:
1.(pin {j_1,j_2,···,j_i}, x_pgeq r_i+1)
2.(p
otin {j_1,j_2,···,j_i}, x_pgeq l_i)
则(sum_{1 leq j_1< j_2···< j_ileq n}|igcap_{k=1}^{i}A_{j_k}|)共有(2^k)种方案
每种方案({n+k-1-sum_{i=1}^{k}(l_1 : or : r_i+1) choose k-1})
所以(ans=|S-igcup_{i=1}^nA_i|=sum_{i=0}^n(-1)^icdotsum_{1 leq j_1< j_2···< j_ileq n}{n+k-1-sum_{i=1}^{k}(l_1 : or : r_i+1) choose k-1})
容斥原理符号
设S是一个有限集,(a_1,a_2,···,a_n)是n种性质
记(N(a_i))为S中有(a_i)性质的元素的数量,特殊的,记(N(1)=|S|)
记(N(1-a_i))为S中没有(a_i)性质的元素的数量
记(N(a_{i1},a_{i2},···a_{ik}))为S中同时有(a_{i1},a_{i2}···a_{ik})的元素的数量
记(N(apm b)=N(a)pm N(b))
容斥原理可以写为
(N((1-a_1)(1-a_2)···(1-a_n))=sum_{i=0}^{n}(-1)^i cdot sum_{1leq j_1<j_2···<j_ileq n}N(a_{j_1}a_{j_2}···a_{j_i}))
对于有些性质有,有些性质没有,公式可以写为
(N(a_1···a_x(1-a_{x+1})···(1-a_{n+x}))=sum_{i=0}^{n}(-1)^i cdot sum_{x+1leq j_1<j_2···<j_ileq n+x}N(a_1···a_xa_{j_1}a_{j_2}···a_{j_i}))
例题
1.https://ac.nowcoder.com/acm/contest/219/B
2.CQOI2012局部最小值 题解
3.Mike and Foam 题解