min-max 容斥
給定集合 \(S\) ,設 \(\max(S)\) 為 \(S\) 中的最大值,\(\min(S)\) 為 \(S\) 中的最小值,則:
這個東西叫 min-max容斥。
證明可以拿二項式反演證
例題
hdu4336 Card Collector
有 \(n\) 種卡片,每一秒都有 \(P_i\) 的概率獲得一張第 \(i\) 種卡片,求每張卡片都至少有一張的期望時間。
記 \(\max(S)\) 為 \(S\) 中最后獲得的那種卡片第一次獲得的期望時間, \(\min(S)\) 為 \(S\) 中第一個獲得的那種卡片第一次獲得的期望時間,仍然滿足:
又因為 \(\min(T)=\frac 1{\sum\limits_{i\in T}P_i}\)
直接算就行了。
HAOI2015 按位或
記 \(\max(S)\) 為 \(S\) 中最后被或到的元素第一次被或到的期望時間, \(\min(S)\) 為 \(S\) 中第一個被或到的元素第一次被或到的期望時間,還是那個式子:
但是這里互相不是獨立的,怎么算 \(\min(T)\) 呢
也就是所有與 \(T\) 有交的集合 \(S\) 的概率之和
正難則反,求出所有與 \(T\) 交集為空的集合 \(S'\) 的概率之和,則它們的補集就是與 \(T\) 有交的集合 \(S\)。
求出 \(S'\) 的概率之和拿 \(1\) 再減掉就好啦。這個東西拿 \(FWT\) 或者 \(FMT\) 都闊以優化一哈。
推廣 kth min-max 容斥
其中 \(\max(S,k)\) 表示 \(S\) 集合中第 \(k\) 大的元素。
例題
重返現世
全網就這一道 kth min-max 容斥orz
首先式子還是那個式子,但是這里的 \(n\) 是 \(1000\),不能 \(2^n\) 枚舉子集。考慮遞推系數求解。
有 \(\min(T)=\frac m{sum(T)}\),其中 \(sum(T)=\sum\limits_{i\in T}p_i\)
設 \(f[i][j][x]\) 表示前 \(i\) 個元素,選的 \(sum(T)\) 為 \(j\),且將 \(k=x\) 代入式子后前面那一大串系數的值。
這樣設狀態的原因就是把等價類划分到了一起,並且容易遞推。
由組合數的性質 \(C_n^m=C_n^{n-m},C_n^m=C_{n-1}^m+C_{n-1}^{m-1}\)
可以列出 \(DP\) 轉移 \(f[i][j][x]=f[i-1][j][x]+(f[i-1][j-p[i]][x-1]-f[i-1][j-p[i]][x])\)
可以拿組合數證。