容斥是個什麼東西我不會啊?

2022-03-03 17:03:06 字數 1228 閱讀 3803

注:本文參考了這位大佬的部落格,詳情請移步——戳我

為什麼容斥係數亂七八糟但是最後算出來的答案卻是正確的的呢。

以乙個常見的容斥係數為例子:\(\sum_^nc_n^i(-1)^\)

\(=\sum_^n(c_^+c_^i)\times (-1)^\)

\(=\sum_^c_^\times (-1)^+\sum_^c_^\times (-1)^\)

\(=\sum_^c_^\times (-1)^+c_^0+\sum_^c_^\times (-1)^\)

\(=1\)

通項公式:

\(ans[n]=n![\frac-\frac+...+(-1)^n\frac]\)

emmm,通項公式沒有辦法快速算,好像也木有什麼用。。。。

正難則反,不等於的條件範圍很大,不好滿足,但是等於確是乙個很強的約束,所以我們考慮分別計算出乙個位置不滿足錯排、兩個位置不滿足錯排。。。n個位置不滿足錯排。

因為我們要求的是錯排的個數,所以我們要減去不合法的「乙個位置不滿足錯排」的情況數目,但是減去的同時我們多減了一次「同時兩個位置不滿足錯排」的情況(本來只應該被減一次,但是現在被減去了兩次),所以我們要加上。但是這樣的話就又多加上了「三個位置不滿足錯排」的情況。。。。。

以此類推,故公式為\(ans[n]=\sum_^(-1)^i\times c_n^i\times (n-i)!\)

但是這個玩意兒我們沒有辦法o(1)地計算,所以繼續化簡——

\(ans[n]=\sum_^(-1)^i\times \frac \times (n-i)!\)

\(ans[n]=\sum_^n(-1)^i\times \frac\)

\(ans[n]=\sum_^(-1)^i\times\frac+(-1)^n\)

\(ans[n]=n*ans[n-1]+(-1)^n\)

比如說,對於至少滿足乙個條件的計算結果,一般長成這個樣子——

\(\sum_^c_^i*f(i)\),其中f(i)是容斥係數,對於上述問題來說是(-1)的i+1次方。

而對於至少滿足k個條件的計算結果,則是\(\sum_^nc_n^i(f(i)=[n>=k])\)。

看了大佬的部落格說,如果我們允許\(n^2\)的複雜度,完全可以讓程式幫忙計算這個容斥係數(來乙個預處理就夠了),乙個乙個遞推即可。

還不會,咕咕咕,回來補。

還不會,咕咕咕,回來補。

emmm....湊係數啊!可以打表也可以反演但是我還不怎麼會。。。大家還是去看棟棟大佬的部落格吧qwqwq

是什麼東西 金錢是個什麼東西?

多數人看到大筆錢都會有一種莫名的興奮,為什麼會興奮呢?因為足夠的金錢能換來自己想要的東西,錢刺激著你的每根神經和細胞,你會控制不住地興奮。錢是個什麼東西?錢是所有物質的替代品,包括房子 車子 愛情 性 健康 未來。只要你方法得當,足夠的金錢可以交換幾乎所有想要的東西。錢是虛幻的。錢可以作為大多數人追...

記憶體是個什麼東西

記憶體,或記憶體儲器,又稱為主儲存器,是關係到計算機執行效能高低的關鍵部件之一,無疑是非常重要的。為了加快系統的速度,提高系統的整體效能,我們看到,計算機中配置的記憶體數量越來越大,而記憶體的種類也越來越多。記憶體是主機板上重要的部件之一,它是儲存cpu與外圍裝置溝通的資料與程式的部件。在主機中,記...

Cloudera是個什麼東西

有人說cloudera和hadoop的關係就如,ubuntu和linux的關係。而cloudera也正是想成為hadoop的發行版的提供者,實際應用的主導者。眾所周知,hadoop需要在集群上配置 安裝,在使用過程中還需要我們的管理。hadoop安裝 部署 管理的難度非常大,這使用很多使用者對had...