Min-Max容斥 学习笔记
Min-Max 容斥学习笔记
前置知识
全序
设集合
- 反对称性:若
a \le b 且b \le a ,则a = b 。 - 传递性:若
a \le b 且b \le c ,则a \le c 。 - 完全性:
a \le b 或b \le a 。
关系的完全性可以理解为:对于集合中的任意一对元素,在该关系下都是相互可比较的。同时,完全性条件蕴含了自反性,即
容斥原理
容斥原理用于计数问题,避免重复计数或遗漏计数,常见于集合交并计数、概率问题等。
Min-Max 容斥原理
定理及公式
Min-Max容斥,又称最值反演,是一种针对特定集合,在已知集合的最小值或最大值情况下,求另一者的算法。
对于集合
证明思路
设
考虑
- 若
k = 1 ,即\min(S) = A_1 ,那么显然S = \{A_1\} ,此时答案为(-1)^2 A_1 = A_1 ,成立。 - 若
k > 1 ,集合的良序性要求S 中不应存在比A_k 更小的元素,剩下的k-1 个位置有2^{k-1} 种选取方式。- 其中一半即
2^{k-2} 种方案使|S| 为奇数,另一半为偶数。 - 两部分分别相加后互相抵消,因此最终结果为
0 。
- 其中一半即
另一种情况同理,详细证明可参考Min-max Inclusion and Exclusion。
扩展公式
第 k 大/小
记
期望推广
若
应用场景与例题
应用场景
Min-Max容斥与其推广常用于解决“所有元素都出现的期望时间”问题。
记
根据 Min-Max 容斥,有:
对公式两边取期望,由于期望的线性性质,可以直接放到求和符号内,即:
实际应用时,
实现方式
由于此方法与集合状态有关,通常使用状态压缩进行实现。以下为伪代码示例:
for i = 0 to 2^n - 1:
for j = 0 to 2^n - 1:
if (j & i):
dp[j] = dp[i] - dp[j]
例题
- hdu4336 Card Collector
该题为经典的“卡片收集期望时间”问题,可以直接使用 Min-Max 容斥求解。
参考文献
- 包含-排除原理 - 维基百科
- Min-Max容斥及其推广和应用 - GXZlegend
- Min-max Inclusion and Exclusion【OI Pharos 6.3.1】