Skip to content

排容原理 Inclusion Exclusion

核心知識點

若要找到 \(A\),找 \(U\) 使 \(A \subseteq U\),找 \(B = A'\),最後 \(n(U) - n(B) = n(A)\)


介紹

排容原理,可以把原本難算的東西,拆成兩個或以上易算的集合,再去做排除與融合

這就和前綴和、差分技巧的思想是一樣的,排容甚至是這兩個技巧的始祖。

通常可以使用文氏圖來輔助思考。


常見模型

基礎排容

遇到「至少一個」的問題,可以使用 \(n(U) - n(None)\) 來求。

遇到「所有條件都不滿足」的問題,可以使用 \(n(U) - n(\bigcup_{i=1}^{n} A_i)\) 來求。

恰好為 k 計數

這類問題可以以差分的想法思考,也就是計算「所有 \(< k\) 的個數」減去「所有 \(\le k\)的個數」。詳細請見差分

質因數、GCD、LCM 計數

這類問題本質也是排容原理,請見質數因數問題


常見錯誤

TODO


代表題目

題目 重點
ABC445E Unbalanced ABC Substrings 把出現不同 -> 全部 - 出現相同,用文氏圖炸開排容。

Agent Prompt

請你扮演這個知識點的老師,按照本文的介紹詮釋這個知識點。 若本文知識點有誤,請點出錯誤的地方並予以修正。