【模板】容斥原理

shyiaw發表於2024-04-18

集合形式

\(S\) 是一個有限集,\(A_1,A_2,\dots,A_n\)\(S\)\(n\) 個子集,則:
\(|S-\cup_{i=1}^{n}A_i|=\sum\limits_{i=0}^{n}(-1)^i\sum\limits_{1\le j_1\le j_2\le\dots\le j_i}|S\cap(\cap_{k=1}^iA_{j_k})|\)

符號形式

\(S\) 是一個有限集,\(a_1,a_2\dots a_n\)\(n\) 中性質。
\(N(a_i)\)\(S\) 中有 \(a_i\) 性質的元素的數量,特殊地,記 \(N(1)=|S|\)
\(N(a_{j_1}a_{j_2}\dots a_{j_k})\)\(S\) 中同時有 \(a_{j_1},a_{j_2},\dots,a_{j_k}\) 性質的元素的數量。
\(N(a+b)=N(a)+N(b),N(a-b)=N(a)-N(b)\)

符號形式的優點

符號形式把容斥原理表達為代數形式
image

典型例題(必會)

  1. 求不定方程 \(x_1+x_2+\dots+x_k=n\) 的接的數量,其中 \(x_i\) 為非負整數,且 \(l_i\le x_i\le r_i(1\le i \le k)\)
  2. \(p\)\(1,2,\dots,n\) 的一個排列,滿足剛好存在 \(k\)\(1 \le i \le n\) 滿足 \(p_i = i\),給定 \(n,k\),求滿足要求的排列有多少個。

相關文章