基本形式

\[
\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\) 对吧

所以这个问题就解决了。

题目

HDU - 4336 Card Collector 题解

bzoj4036 [HAOI2015]按位或 题解

P4707 重返现世 题解

loj2542 「PKUWC2018」随机游走 题解

MinMax 容斥 学习笔记的更多相关文章

  1. min-max容斥学习笔记

    min-max容斥学习笔记 前置知识 二项式反演 \[ f(n)=\sum_{i=0}^n\binom{n}{i}g(i)\Leftrightarrow g(n)=\sum_{i=0}^n(-1)^{ ...

  2. [总结] Min-Max容斥学习笔记

    min-max 容斥 给定集合 \(S\) ,设 \(\max(S)\) 为 \(S\) 中的最大值,\(\min(S)\) 为 \(S\) 中的最小值,则: \[\max(S)=\sum_{T\in ...

  3. [模板] 容斥原理: 二项式反演 / 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 ...

  4. [学习笔记]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, ...

  5. 【学习笔记】Min-max 容斥

    经常和概率期望题相结合. 对于全序集合 \(S\),有: \[\max S=\sum\limits_{T\subseteq S,T\not=\varnothing}(-1)^{\vert T\vert ...

  6. UOJ#449. 【集训队作业2018】喂鸽子 min-max容斥,FFT

    原文链接www.cnblogs.com/zhouzhendong/p/UOJ449.html 题解 设 f(i) 表示给 i 只鸽子喂食使得至少一只鸽子被喂饱的期望次数,先 min-max容斥 一下. ...

  7. [UOJ422][集训队作业2018]小Z的礼物——轮廓线DP+min-max容斥

    题目链接: [集训队作业2018]小Z的礼物 题目要求的就是最后一个喜欢的物品的期望得到时间. 根据$min-max$容斥可以知道$E(max(S))=\sum\limits_{T\subseteq ...

  8. 【LOJ2542】【PKUWC 2018】随机游走 min-max容斥 树上高斯消元

    题目描述 有一棵 \(n\) 个点的树.你从点 \(x\) 出发,每次等概率随机选择一条与所在点相邻的边走过去. 有 \(q\) 次询问,每次询问给定一个集合 \(S\),求如果从 \(x\) 出发一 ...

  9. 【LOJ#2542】[PKUWC2018]随机游走(min-max容斥,动态规划)

    [LOJ#2542][PKUWC2018]随机游走(min-max容斥,动态规划) 题面 LOJ 题解 很明显,要求的东西可以很容易的进行\(min-max\)容斥,那么转为求集合的\(min\). ...

随机推荐

  1. vscode中执行gulp task的简便方法

    本文重点是gulp在vscode中执行task任务的方法 如何像webstorm那样简便操作gulp 的task 第1步:安装node.下载地址:https://nodejs.org/zh-cn/ 检 ...

  2. 一道装呀(状压)DP

    generator 题目描述: 自己的数学太差了,居然没看出来和这两个是相同的: 啊啊啊: 所以装呀一下就好了: #include<iostream> #include<cstdio ...

  3. IP释放、更新、以及清除DNS

    此篇文章会带您进行DNS释放.更新以及清除步骤,并协助您就解决您网络方面问题.请在下方选择您所使用的操作系统. Windows 8 在桌面按住Windows + X按键. 选择Command Prom ...

  4. 20180910-Java 文档注释

    Java 文档注释 Java只是三种注释方式.前两种分别是// 和/* */,第三种被称作说明注释,它以/** 开始,以 */结束. // /* */ /** */ 说明注释允许你在程序中嵌入关于程序 ...

  5. Java并发指南14:JUC中常用的Unsafe和Locksupport

    本文转自网络,侵删 本系列文章将整理到我在GitHub上的<Java面试指南>仓库,更多精彩内容请到我的仓库里查看 https://github.com/h2pl/Java-Tutoria ...

  6. php面试专题---7、文件及目录处理考点

    php面试专题---7.文件及目录处理考点 一.总结 一句话总结: 用脑子:基本文件操作和目录操作了解一波,不必强求 1.不断在文件hello.txt头部写入一行“Hello World”字符串,要求 ...

  7. JAVA数组的toString()方法不能直接输出数组内容?

    问题描述:我定义了一个类,类名是Job,当我输出Job.toString()是可以按我重载的toString方法输出的,但是如果输出jobs[]这个数组时,只会输出[Lmodel.Job;@45e22 ...

  8. PyTestReport使用

    PyTestReport详细介绍: https://testerhome.com/opensource_projects/78 示例代码 #coding:utf-8 import os,unittes ...

  9. Vagrant 手册之 Vagrantfile - SSH 设置 config.ssh

    原文地址 配置的命名空间:config.ssh config.ssh 中的设置与配置 Vagrant 如何通过 SSH 访问您的计算机相关. 大多数 Vagrant 设置一样,一般使用默认设置即可,但 ...

  10. log4j配置及异常、解决办法

    配置: ### set log levels ### D只有一个E也只有一个 log4j.rootLogger = debug,stdout,D,E ### 输出到控制台 ### log4j.appe ...