min-max容斥学习笔记

  • 前置知识

    二项式反演
    \[
    f(n)=\sum_{i=0}^n\binom{n}{i}g(i)\Leftrightarrow g(n)=\sum_{i=0}^n(-1)^{n-i}\binom{n}{i}f(i)
    \]

  • 一些定义

    \(\max (S),\min (S)\)表示分别集合\(S\)的最大,最小元素

  • 套路式子
    \[
    \max(S)=\sum_{\varnothing\not=S\subseteq T}(-1)^{|T|-1}\min(T)
    \]

  • 证明

    首先我们先设一个容斥系数\(f(x)\)
    \[
    \max(S)=\sum_{\varnothing\not=S\subseteq T}f(|T|)\min(T)
    \]
    设集合\(S\)有\(n\)个元素,我们讨论第\(k\)小元素的贡献
    \[
    \sum_{i=0}^{n-k}\binom{n-k}{i}f(i+1)=[n-k=0]
    \]
    就是当这个元素成为最小值时另外再选几个比它要大的元素的方案,如果这个元素不是最大元素,要求不贡献


    \[
    F(n)=f(n+1),G(n)=[n=0]
    \]
    上式为
    \[
    G(n)=\sum_{i=0}^n\binom{n}{i}F(i)
    \]
    由二项式反演
    \[
    F(n)=\sum_{i=0}^n(-1)^{n-i}\binom{n}{i}G(i)
    \]
    代回去
    \[
    \begin{aligned}
    f(n+1)&=\sum_{i=0}^n(-1)^{n-i}\binom{n}{i}[i=0]\\
    &=(-1)^n\\
    f(n)&=(-1)^{n-1}
    \end{aligned}
    \]
    所以有
    \[
    \max(S)=\sum_{\varnothing\not=S\subseteq T}(-1)^{|T|-1}\min(T)
    \]

  • 用处

    在期望意义下,这个式子依然成立,即
    \[
    E(\max(S))=\sum_{\varnothing\not=S\subseteq T}(-1)^{|T|-1}E(\min(T))
    \]
    下面给几个例题

  • 例题

    • HDU4336

      题意:有\(n\)个卡牌,每秒有\(p_i\)的概率抽到卡牌\(i\),求至少得到每个卡牌至少一张的期望时间

      min-max容斥有个套路思想就是化max为min,因为min一般比较好统计

      令\(\max (S)\)表示集合\(S\)中最后一个获得元素的期望时间,\(\min (S)\)代表集合\(S\)中第一个获得元素的期望时间

      那么有上面的套路式子
      \[
      \max(S)=\sum_{\varnothing\not=S\subseteq T}(-1)^{|T|-1}\min(T)
      \]
      \(\min (T)\)就非常好求了
      \[
      \min(T)=\frac{1}{\sum_{i\in T}p_i}
      \]
      就是先把总概率算一下的事情

    • 「HAOI2015」按位或

      题意:初始有一个数\(0\),每秒有\(p_i\)的概率或(|)上整数\(i(i\in [0,2^n))\),求期望多少秒后数组变成\(2^n-1\)

      令\(\max(S)\)表示最后一个或上去的期望时间,\(\min(S)\)同理

      式子随便套,考虑求出\(\min(T)\)
      \[
      \min(T)=\frac{1}{\sum_{S\cap T\not=\varnothing}p_S}
      \]
      考虑求底下的东西
      \[
      \begin{aligned}
      \sum_{S\cap T\not=\varnothing}p_S&=\sum_{S\subseteq U} p_S-\sum_{S\cap T=\varnothing}p_S\\
      &=\sum_{S\subseteq U}p_S-\sum_{\overline S\cup T=\overline S}p_S
      \end{aligned}
      \]
      后面的东西取补集后是子集和的形式,我们可以\(FWT\)或者\(FMT\)在\(2^nn\)内求出

    • 「PKUWC2018」随机游走

      题意:树上随机游走,给定起点,每次询问至少走过一次点集的期望时间

      直接套路上去考虑如何求\(\min (T)\),即第一次到达给定点集的期望步数

      令\(dp_u\)表示\(u\)走到给定点集\(S\)的期望步数,\(d_u\)为\(u\)点度数

      若\(u\in S,dp_u=0\)

      否则
      \[
      \begin{aligned}
      dp_u&=\frac{dp_{fa}}{d_u}+\frac{\sum dp_v}{d_u}+1\\
      &=A_udp_{fa}+B_u
      \end{aligned}
      \]
      就先把环状的转移和其他的分开搞一下,那么
      \[
      dp_u=\frac{dp_{fa}}{d_u}+\frac{\sum A_vdp_u+B_v}{d_u}+1
      \]
      化简一下
      \[
      (1-\frac{\sum A_v}{d_u})dp_u=\frac{dp_{fa}}{d_u}+\frac{\sum B_v}{d_u}+1
      \]
      把左边除过去就可以了

      这样的话我们可以\(n2^n\log 998244353\)处理出每个集合的\(\min(S)\)了,仍然可以预处理子集和

  • kthmax-min容斥
    \[
    kthmax(S)=\sum_{\varnothing\not=T\subseteq S}(-1)^{|T|-k}\binom{|T|-1}{k-1}\min(T)
    \]
    \(kthmax(S)\)表示集合中第\(k\)大的元素

    证明起来和普通的差不多

    设一个容斥系数\(f(n)\),统计\(n\)个元素中第\(x\)小的贡献
    \[
    \sum_{i=0}^{n-x}\binom{n-i}{i}f(i+1)=[n-x+1=k]\\
    \sum_{i=0}^n\binom{n}{i}f(i+1)=[n=k-1]\\
    f(n+1)=\sum_{i=0}^n(-1)^{n-i}\binom{n}{i}[i=k-1]\\
    f(n)=(-1)^{n-k}\binom{n-1}{k-1}
    \]

  • 参考资料

    【Learning】min-max容斥以及推广kth min-max容斥

    min-max容斥

min-max容斥学习笔记的更多相关文章

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

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

  2. MinMax 容斥 学习笔记

    基本形式 \[ \max(S) = \sum_{T\subseteq S, T \neq \varnothing} (-1)^{|T|-1}\min(T) \] 证明 不提供数学证明. 简要讲一下抽象 ...

  3. javascript设计模式(张容铭)学习笔记 - 外观模式绑定事件

    有一个需求要为document对象绑定click事件来是想隐藏提示框的交互功能,于是小白写了如下代码: document.onclick = function(e) { e.preventDefaul ...

  4. javascript设计模式(张容铭)学习笔记 - 照猫画虎-模板方法模式

    模板方法模式(Template Method):父类中定义一组操作算法骨架,而降一些实现步骤延迟到子类中,使得子类可以不改变父类的算法结构的同时可重新定义算法中某些实现步骤. 项目经理体验了各个页面的 ...

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

  6. 快速沃尔什变换 (FWT)学习笔记

    证明均来自xht37 的洛谷博客 作用 在 \(OI\) 中,\(FWT\) 是用于解决对下标进行位运算卷积问题的方法. \(c_{i}=\sum_{i=j \oplus k} a_{j} b_{k} ...

  7. min-max 容斥

    $\min - \max$ 容斥 Part 1 对于简单的$\min - \max$容斥有一般形式,表达为:$\max(S)=\sum\limits_{T\subseteq S}(-1)^{|T|-1 ...

  8. Min-max 容斥与 kth 容斥

    期望的线性性: \[E(x+y)=E(x)+E(y) \] 证明: \[E(x+y)=\sum_i \sum_j(i+j)*P(i=x,j=y) \] \[=\sum_i\sum_ji*P(i=x,j ...

  9. 15ecjtu校赛1006 (dfs容斥)

    Problem Description 在平面上有一个n*n的网格,即有n条平行于x轴的直线和n条平行于y轴的直线,形 成了n*n个交点(a,b)(1<=a<=n,1<=b<= ...

随机推荐

  1. Error: Invoke-customs are only supported starting with Android O (--min-api 26)

    项目报错: 完美解决: 在App下 gradle.build中Android标签中 添加以下内容: compileOptions { sourceCompatibility JavaVersion.V ...

  2. asp.net core根据用户权限控制页面元素的显示

    asp.net core根据用户权限控制页面元素的显示 Intro 在 web 应用中我们经常需要根据用户的不同允许用户访问不同的资源,显示不同的内容,之前做了一个 AccessControlHelp ...

  3. SQL Server中LIKE %search_string% 走索引查找(Index Seek)浅析

      在SQL Server的SQL优化过程中,如果遇到WHERE条件中包含LIKE '%search_string%'是一件非常头痛的事情.这种情况下,一般要修改业务逻辑或改写SQL才能解决SQL执行 ...

  4. 龙尚 U9300C wvdial 拨号上网

    龙尚 U9300C    7模   4G LTE   (国内全网通) 接入linux系统会有4个串口 其中ttyUSB2 为AT指令口 ttyUSB1 为拨号上网口 wvdial   拨号入网参数 [ ...

  5. centos后台运行Python

    在服务器上,为了退出终端,程序依然能够运行,需要设置程序在后台运行. 关键的命令:nohup *基本用法:进入要运行的py文件目录前 nohup python  -u test.py > tes ...

  6. Nginx反向代理实现IP访问分流

    通过Nginx做反向代理来实现分流,以减轻服务器的负载和压力是比较常见的一种服务器部署架构.本文将分享一个如何根据来路IP来进行分流的方法. 根据特定IP来实现分流 将IP地址的最后一段最后一位为0或 ...

  7. 推荐六款炫酷的HTML5效果插件

    1. HTML5 3D图片阴影翻转动画 效果很酷 分享一款很酷的HTML5 3D动画特效,这款3D特效可以为你的图片增加阴影的效果,而且可以让图片在鼠标滑过的时候出现3D翻转的动画效果.这和HTML5 ...

  8. centos7下 svn的配置

    安装svn yum install subversion 查看安装版本 svnserve --version 创建svn版本库目录 mkdir -p /root/svn/test 创建svn版本库 s ...

  9. Redis操作list

    来自:http://www.cnblogs.com/alex3714/articles/6217453.html List操作,redis中的List在在内存中按照一个name对应一个List来存储. ...

  10. 利用XShell上传、下载文件(使用sz与rz命令)

    XSHELL工具上传文件到Linux以及下载文件到本地(Windows)   Xshell很好用,然后有时候想在windows和linux上传或下载某个文件,其实有个很简单的方法就是rz,sz.首先你 ...