min-max 容斥,又名最值反演(我其实更喜欢后面这个名字),是一种常用的反演思想。

引入

在皇后游戏一题中,我们曾经证明过 \(\max(a,b)-a-b=-\min(a,b)\)。

我们尝试推广亿下下这个式子,就会得到两条反演公式:

\[\max(S)=\sum_{T\subseteq S}(-1)^{|T|-1}\min(T)
\]
\[\min(S)=\sum_{T\subseteq S}(-1)^{|T|-1}\max(T)
\]

这就是最值反演公式了。

证明

假如我们将集合 \(S\) 升序排序后的数组称为 \(a\),那么容易发现有:

\[\sum_{T\subseteq S}(-1)^{|T|-1}\min(T)=\sum_{i=1}^na_i\sum_{j=0}^{n-i}(-1)^{(j+1)-1}\binom{n-i}j
\]
\[=\sum_{i=1}^na_i0^{n-i}=a_n=\max(S)
\]

假如我们将集合 \(S\) 降序排序后的数组称为 \(b\),那么容易发现有:

\[\sum_{T\subseteq S}(-1)^{|T|-1}\max(T)=\sum_{i=1}^nb_i\sum_{j=0}^{n-i}(-1)^{(j+1)-1}\binom{n-i}j
\]
\[=\sum_{i=1}^nb_i0^{n-i}=b_n=\min(S)
\]

由此最值反演公式得证。

拓展

我们再尝试推广亿下下最值反演公式,得到:

\[\max(S)_k=\sum_{T\subseteq S,|T|\ge k}(-1)^{|T|-k}\binom{|T|-1}{k-1}\min(T)
\]
\[\min(S)_k=\sum_{T\subseteq S,|T|\ge k}(-1)^{|T|-k}\binom{|T|-1}{k-1}\max(T)
\]

其中 \(\max(S)_k,\min(S)_k\) 表示第 \(k\) 大值和第 \(k\) 小值。

同样考虑将集合 \(S\) 升序、降序排序,得到 \(a,b\),则有:

\[\sum_{T\subseteq S,|T|\ge k}(-1)^{|T|-k}\binom{|T|-1}{k-1}\min(T)=\sum_{i=1}^na_i\sum_{j=k-1}^{n-1}(-1)^{j+k-1}\binom j{k-1}\binom{n-i}j
\]
\[=(-1)^{k-1}\sum_{i=1}^na_i\sum_{j=k-1}^{n-1}(-1)^j\frac{(n-i)!}{(k-1)!(j-k+1)!(n-i-j)!}
\]
\[=\frac{(-1)^{k-1}}{(k-1)!}\sum_{i=1}^na_i(n-i)!\sum_{j=k-1}^{n-1}\frac{(-1)^j}{(n-i-k+1)!}\frac{(n-i-k+1)!}{(j-k+1)!(n-i-j)!}
\]
\[=\frac{(-1)^{k-1}}{(k-1)!}\sum_{i=1}^n\frac{a_i(n-i)!}{(n-i-k+1)!}\sum_{j=k-1}^{n-1}(-1)^j\binom{n-i-k+1}{j-k+1}
\]
\[=\frac{(-1)^{2k-2}}{(k-1)!}\sum_{i=1}^n\frac{a_i(n-i)!}{(n-i-k+1)!}\sum_{j=0}^{n-i-k+1}(-1)^j\binom{n-i-k+1}{j}
\]
\[=\frac{(-1)^{2k-2}}{(k-1)!}\sum_{i=1}^n\frac{a_i(n-i)!}{(n-i-k+1)!}0^{n-i-k+1}
\]
\[=\frac{(-1)^{2k-2}}{(k-1)!}\frac{a_{n-k+1}(n-(n-k+1))!}{(n-(n-k+1)-k+1)!}
\]
\[=a_{n-k+1}=\max(S)_k
\]
\[\sum_{T\subseteq S,|T|\ge k}(-1)^{|T|-k}\binom{|T|-1}{k-1}\max(T)=\sum_{i=1}^nb_i\sum_{j=k-1}^{n-1}(-1)^{j+k-1}\binom j{k-1}\binom{n-i}j
\]
\[=(-1)^{k-1}\sum_{i=1}^nb_i\sum_{j=k-1}^{n-1}(-1)^j\frac{(n-i)!}{(k-1)!(j-k+1)!(n-i-j)!}
\]
\[=\frac{(-1)^{k-1}}{(k-1)!}\sum_{i=1}^nb_i(n-i)!\sum_{j=k-1}^{n-1}\frac{(-1)^j}{(n-i-k+1)!}\frac{(n-i-k+1)!}{(j-k+1)!(n-i-j)!}
\]
\[=\frac{(-1)^{k-1}}{(k-1)!}\sum_{i=1}^n\frac{b_i(n-i)!}{(n-i-k+1)!}\sum_{j=k-1}^{n-1}(-1)^j\binom{n-i-k+1}{j-k+1}
\]
\[=\frac{(-1)^{2k-2}}{(k-1)!}\sum_{i=1}^n\frac{b_i(n-i)!}{(n-i-k+1)!}\sum_{j=0}^{n-i-k+1}(-1)^j\binom{n-i-k+1}{j}
\]
\[=\frac{(-1)^{2k-2}}{(k-1)!}\sum_{i=1}^n\frac{b_i(n-i)!}{(n-i-k+1)!}0^{n-i-k+1}
\]
\[=\frac{(-1)^{2k-2}}{(k-1)!}\frac{b_{n-k+1}(n-(n-k+1))!}{(n-(n-k+1)-k+1)!}
\]
\[=b_{n-k+1}=\min(S)_k
\]

变形

最值反演最经典的应用莫过于期望了。

若 \(S\) 集合表示所有元素的出现时间,那么 \(\max(S)\) 就相当于出现最晚的元素出现的时间。由于 \(E(i)E(j)=E(ij),E(i)+E(j)=E(i+j)\) 等期望的优良性质,所以容易证明:

\[E(\max(S))=\sum_{T\subseteq S}(-1)^{|T|-1}E(\min(T))
\]

这个公式在许多不易求出最长期望时间的问题中有着拔群的效果。

另外一个相当经典的应用是 \(\operatorname{lcm}\) 和 \(\gcd\) 之间的关系,具体证明可以看这个题解的引理四,这里不再做详细证明。

min-max 容斥(最值反演)学习笔记的更多相关文章

  1. [HDU4336]Card Collector(min-max容斥,最值反演)

    Card Collector Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)To ...

  2. min-max容斥/最值反演及其推广

    设\(S\)是一个集合,\(\max(S)\)和\(\min(S)\)分别表示集合中的最大值与最小值. 那么有如下式子成立: \[\max(S)=\sum_{T \subseteq S}(-1)^{| ...

  3. HDU 1695 GCD 欧拉函数+容斥定理 || 莫比乌斯反演

    GCD Time Limit: 6000/3000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submiss ...

  4. BZOJ 2005 [Noi2010]能量采集 (数学+容斥 或 莫比乌斯反演)

    2005: [Noi2010]能量采集 Time Limit: 10 Sec  Memory Limit: 552 MBSubmit: 4493  Solved: 2695[Submit][Statu ...

  5. BZoj 2301 Problem b(容斥定理+莫比乌斯反演)

    2301: [HAOI2011]Problem b Time Limit: 50 Sec  Memory Limit: 256 MB Submit: 7732  Solved: 3750 [Submi ...

  6. 【容斥原理,莫比乌斯反演】用容斥替代莫比乌斯反演第二种形式解决gcd统计问题

    名字虽然很长.但是其实很简单,对于这一类问题基本上就是看你能不能把统计的公式搞出来(这时候需要一个会推公式的队友) 来源于某次cf的一道题,盼望上紫的我让潘学姐帮我代打一道题,她看了看跟我说了题解,用 ...

  7. hdu1695(容斥 or 莫比乌斯反演)

    刚开始看题,想了一会想到了一种容斥的做法.复杂度O( n(3/2) )但是因为题目上说有3000组测试数据,然后吓尿.完全不敢写. 然后想别的方法. 唉,最近精神有点问题,昨天从打完bc开始想到1点多 ...

  8. ZOJ 3868 GCD Expectation (容斥+莫比乌斯反演)

    GCD Expectation Time Limit: 4 Seconds     Memory Limit: 262144 KB Edward has a set of n integers {a1 ...

  9. LOJ3119 CTS2019 随机立方体 概率、容斥、二项式反演

    传送门 为了方便我们设\(N\)是\(N,M,L\)中的最小值,某一个位置\((x,y,z)\)所控制的位置为集合\(\{(a,b,c) \mid a = x \text{或} b = y \text ...

  10. 【CF900D】Unusual Sequences 容斥(莫比乌斯反演)

    [CF900D]Unusual Sequences 题意:定义正整数序列$a_1,a_2...a_n$是合法的,当且仅当$gcd(a_1,a_2...a_n)=x$且$a_1+a_2+...+a_n= ...

随机推荐

  1. The 2nd GUAT Collegiate Programming Contest (Round 1)

    第二届 GUAT大学生程序设计大赛 第一场 题解(A-M) 前言 比赛的内容主要包括计算机科学的常用算法,基本的计算理论,(如:离散数学,具体数学,组合数学基础),数据结构基础,程序设计语言(规定是C ...

  2. ng-alain 创建页面

    https://ng-alain.com/cli/generate/zh https://ng-alain.com/docs/new-page/zh 默认情况下,创建模块 trade,创建在目录 sr ...

  3. mysql restart

    bin/mysqld --defaults-file=/etc/mysql.cnf --user=mysql bin/mysqld --user=app --basedir=/opt/mysql-5. ...

  4. 创建LVM报错:Can't initialize physical volume "/dev/sdb1" of volume group "myvg" without -ff

    问题: 在使用fdisk /dev/sdb 删除原有LVM分区,在接着创建LVM新分区/dev/sdb1.完毕保存之后. 执行pvcreate /dev/sdb1出现报错 Can't initiali ...

  5. 离线yum安装k8s(直接yum安装k8s)快速部署

    问题:如何在没有离线环境上服务器yum安装k8s环境? 环境:准备一台互联网的服务器+离线的服务器 写的比较简便........ 1.互联网服务操作添加阿里云YUM的软件源 cat > /etc ...

  6. Knife4j文档请求异常 app.23f8b31d.js:1 SyntaxError: Unexpected token I in JSON at position 6820

    发现代码里example包含了特殊字符[] 去掉[]即可 @ApiModelProperty(value = "状态", example = "INIT, RUNNING ...

  7. 性能优化!突破性能瓶颈的尖兵CPU Cache

    大家好,我是呼噜噜,今天我们来介绍计算机的储存器之一,CPU高速缓冲存储器也叫高速缓存,CPU Cache 缓存这个专业术语,在计算机世界中是经常使用到的.它并不是CPU所独有的,比如cdn缓存网站信 ...

  8. 即时通讯技术文集(第27期):实时音视频技术合集(Part2) [共17篇]

    ​为了更好地分类阅读 52im.net 总计1000多篇精编文章,我将在每周三推送新的一期技术文集,本次是第27 期. [- 1 -] 专访微信视频技术负责人:微信实时视频聊天技术的演进 [链接] h ...

  9. CDS标准视图:安排维护计划的调用 I_MAINTENANCEPLANSCHEDULE

    视图名称:安排维护计划的调用 I_MAINTENANCEPLANSCHEDULE 视图类型: 视图代码: 点击查看代码 @AbapCatalog.compiler.compareFilter: tru ...

  10. Task异常处理的坑

    全局异常 TaskScheduler.UnobservedTaskException += (e, args) =>{ MessageBox.Show("ddddddddddddddd ...