MinMax 容斥 学习笔记
基本形式
\[
\max(S) = \sum_{T\subseteq S, T \neq \varnothing} (-1)^{|T|-1}\min(T)
\]
证明
不提供数学证明。
简要讲一下抽象理解伪证:
考虑从大到小排名为 \(i\) 的数,这个数会作为集合 \(T\) 的最小值出现时,那么 \(T\) 剩下的所有值都是从大于它的数中选取的。那么选取方案就是 \(\binom{i-1}{|T|-1}\)。
如果 \(i=1\),也就是 \(a_i = \max(S)\),那么它只会被加上 \(1\) 次。
如果 \(i>1\),那么它一共会被算 \(\sum\limits_{2\not\mid j, j=1}^{i-1} \binom{i-1}{j-1} - \sum\limits_{2\mid j, j=2}^{i-1}\binom{i-1}{j-1}\)。根据组合数的常识,这个东西在 \(i-1>0\) 的时候答案为 \(0\)。
综上所述,\(\max(S) = \sum\limits_{T\subseteq S, T \neq \varnothing} (-1)^{|T|-1}\min(T)\) 成立。证毕。
扩展1
\[
\min(S) = \sum_{T\subseteq S, T \neq \varnothing} (-1)^{|T|-1}\max(T)
\]
显然。
推广
令 \(\max_k(S)\) 表示 \(S\) 中的第 \(k\) 大的值。
则
\[
\max\ _{k}(S) = \sum_{T\subseteq S, |T| \geq k} (-1)^{|T|-k}\binom {|T|-1}{k-1} \min(T)
\]
证明
类似于基本形式。
因为 \(|T|\geq k\),所以 \(\min(T) \leq \max_k(S)\)。
对于从大到小排列的第 \(i\) 个数,同基本形式,这个数会作为集合 \(T\) 的最小值出现时,那么 \(T\) 剩下的所有值都是从大于它的数中选取的。那么选取方案就是 \(\binom{i-1}{|T|-1}\)。
如果 \(i=k\),那么它只会被计算 \(1\) 次,即 \(T = \{x\mid x\geq a_i\}\) 时,同时 \(\binom{|T|-1}{k-1} = 1\)。
如果 \(i > k\),那么如上文所述,它会作为大小为 \(|T|\) 的集合出现的次数为 \(\binom{i-1}{|T|-1}\)。每一次出现会被计算 \(\binom{|T|-1}{k-1}\) 次。所以它作为大小为 \(|T|\) 的集合出现的总贡献为 \(\binom{i-1}{|T|-1}\binom{|T|-1}{k-1} = \binom{i-1}{k-1}\binom{i-k}{|T|-k}\)。所以 \(i\) 的总贡献为 \(\sum\limits_{2\not\mid j, j=k}^{i-1} \binom{i-1}{k-1}\binom{i-k}{j-k} - \sum\limits_{2\mid j, j=2}^{i-1}\binom{i-1}{k-1}\binom{i-k}{j-k} = \binom{i-1}{k-1}(\sum\limits_{2\not\mid j, j=k}^{i-1} \binom{i-k}{j-k} - \sum\limits_{2\mid j, j=2}^{i-1}\binom{i-k}{j-k})\)。同样的,根据组合数的常识,\(\sum\limits_{2\not\mid j, j=k}^{i-1} \binom{i-k}{j-k} - \sum\limits_{2\mid j, j=2}^{i-1}\binom{i-k}{j-k}\) 这个东西只有在 \(i-k=0\) 时才为 \(1\),否则为 \(0\)。
应用1
常用的应用比如说:有 \(n\) 个变量,每个变量出现的概率为 \(p\)。问每一个变量都出现的期望时间。
不妨设每一个变量出现的时间为 \(t_i\),那么全部出现的概率可以表示为 \(t\) 的最大值。至少出现一个就是 \(t\) 的最小值。
那么根据 MinMax 容斥的一般形式:
\[
\max(S) = \sum_{T\subseteq S, T \neq \varnothing} (-1)^{|T|-1}\min(T)
\]
同时,根据期望的线性性质,我们也有:
\[
E(\max(S)) = \sum_{T\subseteq S, T \neq \varnothing} (-1)^{|T|-1}E(\min(T))
\]
而 \(E(\min(T))\) 显然很好求解。(显然是 \(\frac 1p\) 对吧
所以这个问题就解决了。
题目
MinMax 容斥 学习笔记的更多相关文章
- min-max容斥学习笔记
min-max容斥学习笔记 前置知识 二项式反演 \[ f(n)=\sum_{i=0}^n\binom{n}{i}g(i)\Leftrightarrow g(n)=\sum_{i=0}^n(-1)^{ ...
- [总结] Min-Max容斥学习笔记
min-max 容斥 给定集合 \(S\) ,设 \(\max(S)\) 为 \(S\) 中的最大值,\(\min(S)\) 为 \(S\) 中的最小值,则: \[\max(S)=\sum_{T\in ...
- [模板] 容斥原理: 二项式反演 / Stirling 反演 / min-max 容斥 / 子集反演 / 莫比乌斯反演
//待更qwq 反演原理 二项式反演 若 \[g_i=\sum_{j=1}^i {\binom ij} f_j\] , 则有 \[ f_i=\sum_{j=1}^i (-1)^{i-j} {i \ch ...
- [学习笔记]min-max容斥
[Learning]min-max容斥以及推广 min-max容斥 就是max(a,b)=min(a)+min(b)-min(a,b) max(a,b,c)=a+b+c-min(a,b)-min(a, ...
- 【学习笔记】Min-max 容斥
经常和概率期望题相结合. 对于全序集合 \(S\),有: \[\max S=\sum\limits_{T\subseteq S,T\not=\varnothing}(-1)^{\vert T\vert ...
- UOJ#449. 【集训队作业2018】喂鸽子 min-max容斥,FFT
原文链接www.cnblogs.com/zhouzhendong/p/UOJ449.html 题解 设 f(i) 表示给 i 只鸽子喂食使得至少一只鸽子被喂饱的期望次数,先 min-max容斥 一下. ...
- [UOJ422][集训队作业2018]小Z的礼物——轮廓线DP+min-max容斥
题目链接: [集训队作业2018]小Z的礼物 题目要求的就是最后一个喜欢的物品的期望得到时间. 根据$min-max$容斥可以知道$E(max(S))=\sum\limits_{T\subseteq ...
- 【LOJ2542】【PKUWC 2018】随机游走 min-max容斥 树上高斯消元
题目描述 有一棵 \(n\) 个点的树.你从点 \(x\) 出发,每次等概率随机选择一条与所在点相邻的边走过去. 有 \(q\) 次询问,每次询问给定一个集合 \(S\),求如果从 \(x\) 出发一 ...
- 【LOJ#2542】[PKUWC2018]随机游走(min-max容斥,动态规划)
[LOJ#2542][PKUWC2018]随机游走(min-max容斥,动态规划) 题面 LOJ 题解 很明显,要求的东西可以很容易的进行\(min-max\)容斥,那么转为求集合的\(min\). ...
随机推荐
- MySQL修改密码方法汇总
本文给大家汇总介绍了MySQL修改密码的方法,分为MySQL5.7版本之前以及MySQL5.7版本之后的修改方法,有需要的小伙伴可以参考下 MySQL5.7版本之前修改密码的方法: 方法1: 用SET ...
- swan.onPageNotFound
解释: 监听小程序要打开的页面不存在事件.该事件与 App.onPageNotFound 的回调时机一致. 方法参数: Function callback小程序要打开的页面不存在的事件回调函数. ca ...
- Python_007(深浅拷贝)
一.基础数据类型的补充 1.其他类型之间的相互转换 例如:str = int(str) str => int; int = list(int) int => list; tuple = ...
- servlet技术之下载文件演示(DownloadServlet.class)
servlet技术之下载文件演示(DownloadServlet.class) 文件是指把服务器端文件发送到客户端,Servlet能够向客户端发送任意格式的文件数据,例程的DownloadServle ...
- [CSP-S模拟测试]:Divisors(数学)
题目描述 给定$m$个不同的正整数$a_1,a_2,...,a_m$,请对$0$到$m$每一个$k$计算,在区间$[1,n]$里有多少正整数是$a$中恰好$k$个数的约数. 输入格式 第一行包含两个正 ...
- promise以及async、await学习总结
Promise/async.await帮我们解决了什么 它给我们提供了一种新的异步编程解决方案,同时避免了困扰已久的回调地狱 // 异步的处理可能会产生这样的回调地狱(第二个异步操作和第一个异步的结果 ...
- threading.get_ident()
https://docs.python.org/3/library/threading.html Return the 'thread identifier' of the current threa ...
- 16/8/23-jQuery子调用匿名函数
通过创建一个自调用匿名函数,创建一个特殊的函数作用域,该作用域中的代码不会和已有的同名函数.方法和变量以及第三方库冲突. 自调用匿名函数写法 方法一: (function(){ //... })(); ...
- Visual Studio Code配置技巧
Visual Studio Code配置技巧 VS Code是啥 Visual Studio Code(以下简称 VS Code) 是一个免费.开源.跨平台的由微软开发的程序编辑器.它是用 TypeS ...
- Support Vector Machine(4):SMO算法
经过上一篇的推导,我们的优化问题已经化为了如下等价形式: 我们在不考虑任何约束条件的情况下去想这个minimize的问题,可以将其抽象为: SMO算法的思想是,每次迭代,只改变一个参数,而将n-1个参 ...