容斥原理及證明

2022-05-31 08:48:08 字數 2148 閱讀 7607

設共有\(n\)個集合,\(a_i\)表示第\(i\)個集合,則所有集合的並集可表示成以下形式:

\[|a_1\cup a_2\cup \cdots\cup a_n|=\sum_^n (-1)^\sum|a_1\cap a_2\cap\cdots\cap a_i|

\]設某個元素被\(x\)個集合包含,顯然地,其對左式的貢獻為1,因為在並集中只計算一次。

考慮其對於右式的貢獻,它會在這\(x\)個集合的所有子集中被計算到。其貢獻為:

\[\sum_^x c_x^i(-1)^=-\sum_^x c_x^i(-1)^=1-\sum_^x c_x^i(-1)^=1-\sum_^x c_x^i(-1)^\times1^=1-(1-1)^x=1

\]由於所有元素對於左右兩式的貢獻均為1,綜上即可證得等式成立。

設\(a_i^c\)表示\(a_i\)的補集,\(s\)表示全集,則:

\[|a_1^c\cap a_2^c\cap\cdots\cap a_n^c|=|s|-|a_1\cup a_2\cup \cdots\cup a_n|=|s|-\sum_^n (-1)^\sum|a_1\cap a_2\cap\cdots\cap a_i|

\]常用於解決限制條件較繁複的問題。

[click]

這三個限制可以逐個來解決,然後逐層相乘。

當至少有\(i\)行\(j\)列不染色的規定為某\(i\)行\(j\)列不染色的時候,設\(f_k\)表示不用\(k\)種顏色的方案。

則:\[\binom(c-k+1)^=\sum_^c \binom f_t

\]左式的意義為,選\(k\)個顏色不用的方案數。由於還有不塗色的選擇,所以並不能保證只有那幾個沒有用到。假設有一種方案恰好有\(t\)種顏色沒用到,根據這樣的選擇方式,它就被計算了\(\binom\)次。由此得出上式。

二項式反演一下,或者從單純的容斥角度而言,即可得到:

\[f_k=\sum_^c (-1)^\binom\binom(c-t+1)^

\]\[\begin

\sum_^c f_k& =\sum_^c \sum_^c (-1)^\binom\binom(c-t+1)^\\

& =\sum_^c \binom\binom(c-t+1)^ \sum_^t (-1)^\binom\\

& =\sum_^c \binom\binom(c-t+1)^ (-(-1)^t +\sum_^t (-1)^1^k \binom)\\

& =\sum_^c (-1)^\binom(c-t+1)^\\

\end\]

合法的方案數即為:

\[(c+1)^-\sum_^c f_k=\sum_^c (-1)^k\binom (c-k+1)^

\]這樣的方案數,還是會算重,同樣因為有不塗色的選擇會導致超過\(i\)行或\(j\)列是完全空白的。再進行容斥,即可得到:

\[\begin

& \sum_^n (-1)^i \binom\sum_^m (-1)^j \binom \sum_^c (-1)^k\binom(c-k+1)^\\

& =\sum_^n\sum_^c (-1)^\binom \binom\sum_^m \binom(-1)^j(c-k+1)^\\

& =\sum_^n\sum_^c (-1)^\binom \binom\sum_^m [-1+(c-k+1)^]^m \\

\end\]

如果不將後面的求和轉化掉的話,複雜度是\(o(n^3)\)。轉化後對每乙個\(c-k+1\)的冪進行預處理,即可達到\(o(n^2logn)\)的複雜度。

[click]

#include #include typedef long long ll;

const int p=1e9+7;

const int maxn=400+10;

int fac[maxn],inv[maxn],pow[maxn*maxn];

int max(int x,int y)

int read()

int power(int a,int n)

return res;

}void prework(int n)

int c(int n,int m)

int main()

} printf("%d\n",ans);

return 0;

}

Min Max 容斥的證明

這裡有 min max 容斥的證明以及唯一一道博主做過的例題.上個結論 min sum 1 max max sum 1 min 具體的證明其實很簡單.我們考慮證明其中乙個 以第乙個為例 另乙個可以用類似證法得到結論。咱直接考慮集合內元素不重的情況,因為相同大小我們強制規定他們之間存在大小關係就好了,...

容斥原理及廣義容斥(二項式反演)

就是這麼乙個公式 因為本人太弱,不會嚴謹的數學證明,感性理解一下就是把那些重複的元素去掉就行了。容斥的套路挺多的,還是要多做題。貌似也叫二項式反演,總共有3種形式,但常用的只有兩種 1.若 f n sum limits binomg i 那麼 g n sum limits 1 binomf i 具體...

容斥原理 數論

兩個集合的容斥關係公式 a b a b a b a b 重合的部分 三個集合的容斥關係公式 a b c a b c a b b c c a a b c 最後可以推廣到n個集合,集合裡的元素為奇數則加,偶數減 hdu 4135 很簡單,直接求出所有的質因子,然後容斥解決 author crystal ...