Min-Max 反演及其应用
普通形式
max(S)=∑∅≠T⊆S(−1)|T|−1min(S)
min(S)=∑∅≠T⊆s(−1)|T|−1max(S)
拓展形式
既然能求最大,能不能求第 K 大?
有高人就通过容斥整出来了:
kthmax(S)=∑∅≠T⊆S(−1)|T|−k(|T|−1k−1)min(T)
kthmin(S)=∑∅≠T⊆S(−1)|T|−k(|T|−1k−1)max(T)
看起来好像很没用?直接枚举子集的话复杂度是 O(2n) 的,还不如直接排序。
事实上还是有点用的,比如 NOIonline 2022 T3,可以将三维偏序问题转为二维偏序问题。
好像还是没什么用。。。其实他还有一条更重要的性质。
min-max 反演在期望意义下依然成立:
E(kthmax(S))=∑∅≠T⊆S(−1)|T|−k(|T|−1k−1)E(min(T))
E(kthmin(S))=∑∅≠T⊆S(−1)|T|−k(|T|−1k−1)E(max(T))
事实上 min-max 容斥大部分用途也就是用来求容斥。
考虑这样一个问题,有 n 种物品,每种无限个,每次取一种物品中的一个,每种物品有 Pi 的概率被取出,问取出 n 种物品的期望次数。
我们定义 E(min(S)) 为 S 中最早出现物品的时间,E(max(S)) 同理,那么套 max-min 反演就可以在 O(2n) 的时间内求出答案了。
例题
HAOI2015按位或
重返现世
题解先咕着。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· 写一个简单的SQL生成工具
· AI 智能体引爆开源社区「GitHub 热点速览」
· C#/.NET/.NET Core技术前沿周刊 | 第 29 期(2025年3.1-3.9)