容斥原理
解釋
容斥原理用於求解復合事件概率或集合大小等問題
兩個元素的容斥原理非常常見
擴展到一般形式,容斥原理就是求幾個集合的並集大小,把每個集合的大小相加,再減去任意兩個不同集合的交集,再加上任意三個不同集合的交集,再減去任意四個不同集合的交集……以此類推直到加上或減去所有集合的交集
公式
換成更美觀簡潔的形式:
證明
我們令一個元素屬於這 \(n\) 個集合中的 \(m\) 個
對於等式左邊,求並集后這個元素只會被計算 \(1\) 次,也就是說這個元素對於等式左邊的貢獻為 \(1\)
對於等式右邊,第一項中這個元素會被計算 \(m\) 次,也就是貢獻為 \(m\),第二項中只有當這個元素同時屬於 \(A_i,A_j\) 時該元素才會被計算一次,從 \(m\) 個集合中選擇兩個組合,組合數即為該元素被計算的次數,也就是說這個元素會被計算 \({m\choose 2}\) 次,貢獻為 \(-{m\choose 2}\) ,以此類推,對於等式右側的第 \(i\) 項,\(m\) 會被計算 \({m\choose i}\) 次,貢獻為 \((-1)^{i-1}{m\choose i}\) ,所以這個元素對等式右邊的貢獻為
對於每個元素來說,它對等式兩邊的貢獻均為 \(1\) ,所以等式成立
應用
問題一
有6個字母W,Z,C,O,R,Z,用這六個字母進行排序,要求第一個字母不能為R和Z,最后一個字母不能為W和Z,請問共有多少種合法的排列?
考慮求解原問題的逆問題,即第一個字母為R或Z,最后一個字母為W和Z的排列方案
令六個字母任意排列方案集合為 \(U\),第一個字母為R或Z的排列方案集合為 \(A\),最后一個字母為W和Z的排列方案集合為 \(B\),則有
我們要求的答案就是 \(|U|-|A\cup B|\) ,根據容斥原理有
問題二
有兩個字母C,三個字母M,四個字母Y,用這九個字母進行排序,要求相同的字母不能相鄰,請問共有多少種合法的排列?
令九個字母任意排列方案集合為 \(U\),字母C全部相鄰的排列方案集合為 \(C\),字母M全部相鄰的排列方案集合為 \(M\),字母Y全部相鄰的排列方案集合為 \(Y\),則有
我們要求的答案就是 \(|U|-|C\cup M\cup Y|\) ,根據容斥原理有
問題三
Luogu P3197 [HNOI2008]越獄 點我傳送
監獄有 \(n\) 個房間,每個房間關押一個犯人,有種 \(m\) 宗教,每個犯人會信仰其中一種。如果相鄰房間的犯人的宗教相同,就可能發生越獄,現在給出 \(n,m\),求有多少種狀態可能發生越獄?
同樣考慮求原問題的逆問題,先求出總的宗教信仰可能數,再減去沒有人越獄的情況就能算出答案
總的宗教信仰可能數為 \(n^m\) ,沒有人越獄也就是任意相鄰的兩個人信仰都不同,考慮從最左邊開始計算,最左側的人的信仰有 \(m\) 種可能,對於他右邊的人,每個人的信仰都不能與自己左邊的人的信仰相同,所以右邊的 \(n-1\) 個人的信仰都有 \(m-1\) 種可能,所以答案為 \(n^m-m(m-1)^n\)
快速冪計算即可
該文為本人原創,轉載請注明出處