设\(S\)是一个集合,\(\max(S)\)和\(\min(S)\)分别表示集合中的最大值与最小值。

那么有如下式子成立:
\[\max(S)=\sum_{T \subseteq S}(-1)^{|T|+1}\min(T)\]
\[\min(S)=\sum_{T \subseteq S}(-1)^{|T|+1}\max(T)\]

因为证明很简单就写一下吧,以第一个式子为例,设\(\max(S)=x\),那么只有\(T=\{x\}\)时的\(\min(T)\)为\(x\)(可能有多个相同的最大值,这时候随便钦点一个就可以了),对于除此之外的所有\(T\),肯定至少存在一个集合中的数\(y\)使得\(\min(T \cup \{y\})=\min(T)\),假设有\(k\)个这样的\(y\),那么从中选奇数个和选偶数个的方案数是一样的,于是\(\min(T)\)就被抵消了。

这个式子在期望下也是成立的,即:
\[E[\max(S)]=\sum_{T \subseteq S}(-1)^{|T|+1}E[\min(T)]\]

用期望的线性性证明即可。

于是就可以用来做题了,一般的套路是每个位置有概率从\(0\)变成\(1\),问都变成\(1\)的期望步数,这就是\(\max(S)\),然后就反演成\(\min(T)\),至少一个数变成\(1\)的期望就好做很多了。

\(upd\):来填坑了...现在来介绍一下最值反演的推广:通过求\(\min\)来求第\(k\)大(\(kth\max\))。前置知识是二项式反演,如果不知道请戳这里

我们来尝试构造一个函数\(f\),使得:

\[kth\max(S)=\sum_{T \subseteq S} f_{|T|}\min(T)\]

然后来考虑一下对于集合中第\(i\)大的元素,如果\(\min(T)\)等于这个元素,那么只有比它大的\(i-1\)个元素是可能存在的,那么它的贡献就是:

\[\sum_{j=0}^{i-1} {i-1 \choose j} f_{j+1}\]

也就是说\(f\)需要满足:

\[\sum_{j=0}^{i-1} {i-1 \choose j} f_{j+1}=[i=k]\]

等价于:

\[\sum_{j=0}^i {i \choose j} f_{j+1}=[i=k-1]\]

为了方便我们用\(\widehat f_i=f_{i+1}\)替换\(f\),然后用\(g_i\)表示\([i=k-1]\),那么就得到:

\[\sum_{j=0}^i {i \choose j} \widehat f_j=g_i\]

看这个是不是一个经典的二项式反演的形式呀,所以二项式反演一下:

\[\widehat f_i=\sum_{j=0}^i (-1)^{i-j} {i \choose j} g_j\]

然后因为\(g_i=[i=k-1]\),所以上面的式子只有\(j=k-1\)这一项是有贡献的,我们再把\(f\)替换回去,得:

\[f_{i+1}=(-1)^{i-k+1} {i \choose k-1}\]

再把\(f_{i+1}\)替换成\(f_i\),最终得到:

\[f_i=(-1)^{i-k} {i-1 \choose k-1}\]

终于结束啦!

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

同时我们可以发现如果要求第\(k\)大,那么只需要计算元素个数\(\geq k\)的子集就可以了。

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. HDU 1695 GCD 欧拉函数+容斥定理 || 莫比乌斯反演

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

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

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

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

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

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

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

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

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

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

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

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

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

  9. 【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. html的标签分类————可以上传的数据篇

    html的标签可以分为: 块级标签:div(白板),H系列(加大加粗,H1—H7,字体一般逐渐变小,一般用作标题),p标签(段落之间有间距) 行内标签:span(白板) 此外,标签之间是可以嵌套的.为 ...

  2. java StringBuilder 和 StringBuffer

    1, 相对于 String 来说, StringBuilder 和 StringBuffer 均是可变的 2, StringBuilder 线程不安全, StringBuffer 线程安全 3, 运行 ...

  3. 钉钉JSAPI前端鉴权

    钉钉二次开发分为如下表所示三种类型的开发,只有企业内部应用才需要对JSAPI鉴权. 类型 开发方式 JSAPI鉴权 应用场景 第三方企业应用 E应用开发 不需要 用于发布到钉钉应用市场,供广大用户下载 ...

  4. Android 简单登陆 涉及 Button CheckBox TextView EditText简单应用

    GitHub地址:https://github.com/1165863642/LoginDemo 直接贴代码<?xml version="1.0" encoding=&quo ...

  5. ionic3 Toast组件

    html页面 <button ion-button color="dark" class="button-block" (click)="sho ...

  6. 解决TOC与目录导航冲突问题

    TOC是指markdown的TOC; 目录导航是指博客园中各个博主提供的各种目录导航. 现在改换markdown写博文了,我喜欢使用TOC作为目录,让大家了解博文的内容,也喜欢用"目录导航& ...

  7. maven springTest结合junit单元测试

    1.引入相关依赖 <dependency> <groupId>junit</groupId> <artifactId>junit</artifac ...

  8. 爬虫基础--IO多路复用单线程异步非阻塞

    最近一直的学习爬虫  ,进行基础的学习 性能相关 参考 https://www.cnblogs.com/wupeiqi/p/6229292.html # 目标:单线程实现并发HTTP请求 # # so ...

  9. Linux电源管理(9)_wakelocks【转】

    1. 前言 wakelocks是一个有故事的功能. wakelocks最初出现在Android为linux kernel打的一个补丁集上,该补丁集实现了一个名称为"wakelocks&quo ...

  10. 产品设计-后台管理权限设计RBAC

    最近在做OA系统,设计到不同的员工会拥有不同权限对OA进行操作,总结了一下整体的设计 做权限的分配就是为了更好的管理不同类别的员工,如人事部可以看到普通员工的薪酬,可以查看全部员工的考勤数据请假等,而 ...