min-max容斥/最值反演及其推广
设\(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容斥/最值反演及其推广的更多相关文章
- [HDU4336]Card Collector(min-max容斥,最值反演)
Card Collector Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)To ...
- HDU 1695 GCD 欧拉函数+容斥定理 || 莫比乌斯反演
GCD Time Limit: 6000/3000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submiss ...
- BZOJ 2005 [Noi2010]能量采集 (数学+容斥 或 莫比乌斯反演)
2005: [Noi2010]能量采集 Time Limit: 10 Sec Memory Limit: 552 MBSubmit: 4493 Solved: 2695[Submit][Statu ...
- BZoj 2301 Problem b(容斥定理+莫比乌斯反演)
2301: [HAOI2011]Problem b Time Limit: 50 Sec Memory Limit: 256 MB Submit: 7732 Solved: 3750 [Submi ...
- 【容斥原理,莫比乌斯反演】用容斥替代莫比乌斯反演第二种形式解决gcd统计问题
名字虽然很长.但是其实很简单,对于这一类问题基本上就是看你能不能把统计的公式搞出来(这时候需要一个会推公式的队友) 来源于某次cf的一道题,盼望上紫的我让潘学姐帮我代打一道题,她看了看跟我说了题解,用 ...
- hdu1695(容斥 or 莫比乌斯反演)
刚开始看题,想了一会想到了一种容斥的做法.复杂度O( n(3/2) )但是因为题目上说有3000组测试数据,然后吓尿.完全不敢写. 然后想别的方法. 唉,最近精神有点问题,昨天从打完bc开始想到1点多 ...
- ZOJ 3868 GCD Expectation (容斥+莫比乌斯反演)
GCD Expectation Time Limit: 4 Seconds Memory Limit: 262144 KB Edward has a set of n integers {a1 ...
- LOJ3119 CTS2019 随机立方体 概率、容斥、二项式反演
传送门 为了方便我们设\(N\)是\(N,M,L\)中的最小值,某一个位置\((x,y,z)\)所控制的位置为集合\(\{(a,b,c) \mid a = x \text{或} b = y \text ...
- 【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= ...
随机推荐
- js中函数表达式和自执行函数表达式的用法总结
立即调用函数表达式 给函数体加大括号,在有变量声明的情形下,没有任何区别 但是,如果只是[自动执行]的情形下,就会不同 因为,一个匿名函数,不赋值或函数体不加小括号,是不能自动执行的 //以下情形并无 ...
- Web前端:博客美化:一、模板美化
1.选用模板simplememory 2.写css放在 这些会覆盖掉原来的css样式 我是在网上找的css代码二次加工的 : ) /*1.针对simplememory的修改*/ #google_ad_ ...
- 网络最大流算法—EK算法
前言 EK算法是求网络最大流的最基础的算法,也是比较好理解的一种算法,利用它可以解决绝大多数最大流问题. 但是受到时间复杂度的限制,这种算法常常有TLE的风险 思想 还记得我们在介绍最大流的时候提到的 ...
- centos7 安装java运行环境
1.检测是否存在相关历史版本 shell:java-version 1.1.存在相关OpenJDK和其他版本SDK则需要删除,如图. 查看详细信息,命令窗口输入,shell:rpm -qa | gre ...
- input file实现多选和限制文件上传类型
<!-- input file accept 属性设置可上传文件的类型 multiple属性设置可多文件上传--> <!-- accept 并未真正的实现限制上传文件类型,只是在 ...
- win10安装JDK详细教程
电脑进行了重装机器.需要重新安装,在此记录一下. 点击下一步.选择安装路径 . 等待后,选择安装位置. 点击下一步,继续等待. 安装完成. 设置环境变量 在桌面右键单击 我的电脑→属性→高级系统设置→ ...
- Swift UIFont
设置字体 titleLabel.font = UIFont.systemFont(ofSize: 17.0, weight: .heavy)
- 小小白搭建nextcloud云盘
我是一名linux的小小白,今天就利用自己的所学搭建属于自己的云盘——nextcloud. 本人学生狗,普通的云盘也要几十块钱,既然我们只是拿来搭建巩固自己知识并不做为生产力,我们就用VMware W ...
- python+selenium 输出2种样式的测试报告
第一种: 1.通过 HTMLTestRunner 模块输出报告 2.下载连接 http://tungwaiyip.info/software/HTMLTestRunner.html 3.将下载好的文件 ...
- Linux下的快速配置虚拟环境virtualenvwrapper
一 安装包 pip3 install virtualenv virtualenvwrapper 二 设置linux的用户个人配置文件~/.bashrc WORKON_HOME=~/Envs 设置vir ...