min max容斥 最值反演及其推廣

2022-03-31 14:18:17 字數 1387 閱讀 3167

設\(s\)是乙個集合,\(\max(s)\)和\(\min(s)\)分別表示集合中的最大值與最小值。

那麼有如下式子成立:

\[\max(s)=\sum_(-1)^\min(t)

\]\[\min(s)=\sum_(-1)^\max(t)

\]因為證明很簡單就寫一下吧,以第乙個式子為例,設\(\max(s)=x\),那麼只有\(t=\\)時的\(\min(t)\)為\(x\)(可能有多個相同的最大值,這時候隨便欽點乙個就可以了),對於除此之外的所有\(t\),肯定至少存在乙個集合中的數\(y\)使得\(\min(t \cup \)=\min(t)\),假設有\(k\)個這樣的\(y\),那麼從中選奇數個和選偶數個的方案數是一樣的,於是\(\min(t)\)就被抵消了。

這個式子在期望下也是成立的,即:

\[e[\max(s)]=\sum_(-1)^e[\min(t)]

\]用期望的線性性證明即可。

於是就可以用來做題了,一般的套路是每個位置有概率從\(0\)變成\(1\),問都變成\(1\)的期望步數,這就是\(\max(s)\),然後就反演成\(\min(t)\),至少乙個數變成\(1\)的期望就好做很多了。

\(upd\):來填坑了...現在來介紹一下最值反演的推廣:通過求\(\min\)來求第\(k\)大(\(kth\max\))。前置知識是二項式反演,如果不知道請戳這裡。

我們來嘗試構造乙個函式\(f\),使得:

\[kth\max(s)=\sum_ f_\min(t)

\]然後來考慮一下對於集合中第\(i\)大的元素,如果\(\min(t)\)等於這個元素,那麼只有比它大的\(i-1\)個元素是可能存在的,那麼它的貢獻就是:

\[\sum_^ f_

\]也就是說\(f\)需要滿足:

\[\sum_^ f_=[i=k]

\]等價於:

\[\sum_^i f_=[i=k-1]

\]為了方便我們用\(\widehat f_i=f_\)替換\(f\),然後用\(g_i\)表示\([i=k-1]\),那麼就得到:

\[\sum_^i \widehat f_j=g_i

\]看這個是不是乙個經典的二項式反演的形式呀,所以二項式反演一下:

\[\widehat f_i=\sum_^i (-1)^ g_j

\]然後因為\(g_i=[i=k-1]\),所以上面的式子只有\(j=k-1\)這一項是有貢獻的,我們再把\(f\)替換回去,得:

\[f_=(-1)^

\]再把\(f_\)替換成\(f_i\),最終得到:

\[f_i=(-1)^

\]終於結束啦!

\[kth\max(s)=\sum_ (-1)^ \min(t)

\]同時我們可以發現如果要求第\(k\)大,那麼只需要計算元素個數\(\geq k\)的子集就可以了。

Min Max 容斥的證明

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

min max容斥學習筆記

給出集合 s 可以通過某種奇特的方式將最小值和最大值互相轉化,甚至轉化為 k 大值。更為有用的是,它在期望意義下也是正確的。min s sum 1 max t max s sum 1 min t 證明和作用不再贅述,網上大把。min max 容斥不只可以搞出最值,甚至可以搞出 k 大值。受上面的啟發...

min max容斥學習筆記

min max 容斥是說乙個這樣的式子 max sum 1 min min sum 1 max 其中 min 表示 s 集合中的最小元素,max 表示最大元素。第乙個式子證明如下 max sum f t min 考慮第 x 1 大的元素被統計到的次數,我們可以列舉有多少個集合的最小值為第 x 1 大...