[总结] Min-Max容斥学习笔记
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])\)
可以拿组合数证。