min-max 容斥

给定集合 \(S\) ,设 \(\max(S)\) 为 \(S\) 中的最大值,\(\min(S)\) 为 \(S\) 中的最小值,则:

\[\max(S)=\sum_{T\in S}(-1)^{|T|-1}\min(T)\]

这个东西叫 min-max容斥。

证明可以拿二项式反演证

例题

hdu4336 Card Collector

题目

有 \(n\) 种卡片,每一秒都有 \(P_i\) 的概率获得一张第 \(i\) 种卡片,求每张卡片都至少有一张的期望时间。

记 \(\max(S)\) 为 \(S\) 中最后获得的那种卡片第一次获得的期望时间, \(\min(S)\) 为 \(S\) 中第一个获得的那种卡片第一次获得的期望时间,仍然满足:

\[\max(S)=\sum_{T\in S}(-1)^{|T|-1}\min(T)\]

又因为 \(\min(T)=\frac 1{\sum\limits_{i\in T}P_i}\)

直接算就行了。

HAOI2015 按位或

题目

记 \(\max(S)\) 为 \(S\) 中最后被或到的元素第一次被或到的期望时间, \(\min(S)\) 为 \(S\) 中第一个被或到的元素第一次被或到的期望时间,还是那个式子:

\[\max(S)=\sum_{T\in S}(-1)^{|T|-1}\min(T)\]

但是这里互相不是独立的,怎么算 \(\min(T)\) 呢

\[\min(T)=\frac 1{\sum_{S\cap T\ne \emptyset} P_S}\]

也就是所有与 \(T\) 有交的集合 \(S\) 的概率之和

正难则反,求出所有与 \(T\) 交集为空的集合 \(S'\) 的概率之和,则它们的补集就是与 \(T\) 有交的集合 \(S\)。

求出 \(S'\) 的概率之和拿 \(1\) 再减掉就好啦。这个东西拿 \(FWT\) 或者 \(FMT\) 都阔以优化一哈。

推广 kth min-max 容斥

\[\max(S,k)=\sum_{T\in S}(-1)^{|T|-k}\cdot C(|T|-1,k-1)\cdot \min(T)\]

其中 \(\max(S,k)\) 表示 \(S\) 集合中第 \(k\) 大的元素。

例题

重返现世

题目

全网就这一道 kth min-max 容斥orz

首先式子还是那个式子,但是这里的 \(n\) 是 \(1000\),不能 \(2^n\) 枚举子集。考虑递推系数求解。

有 \(\min(T)=\frac m{sum(T)}\),其中 \(sum(T)=\sum\limits_{i\in T}p_i\)

设 \(f[i][j][x]\) 表示前 \(i\) 个元素,选的 \(sum(T)\) 为 \(j\),且将 \(k=x\) 代入式子后前面那一大串系数的值。

这样设状态的原因就是把等价类划分到了一起,并且容易递推。

由组合数的性质 \(C_n^m=C_n^{n-m},C_n^m=C_{n-1}^m+C_{n-1}^{m-1}\)

可以列出 \(DP\) 转移 \(f[i][j][x]=f[i-1][j][x]+(f[i-1][j-p[i]][x-1]-f[i-1][j-p[i]][x])\)

可以拿组合数证。

[总结] Min-Max容斥学习笔记的更多相关文章

  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. 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. python 队列结合线程的使用

    from queue import Queue from threading import Thread import time q = Queue() def add_to_queue(): for ...

  2. 避免docker异常重启容器挂掉的解决方法

    Docker 升级或者重启容器不会被停掉然后重启的解决方法 在/etc/systemd/system/multi-user.target.wants/docker.service文件下添加配置 注意: ...

  3. 用JavaScript制作简单的计算器

    <html > <head> <title>简单计算器</title> <style type="text/css"> ...

  4. java(一) 基础部分

    1.11.简单讲一下java的跨平台原理 Java通过不同的系统.不同版本.不同位数的java虚拟机(jvm),来屏蔽不同的系统指令集差异而对外体统统一的接口(java API),对于我们普通的jav ...

  5. 解决weblogic 部署环境后出现的乱码问题

    1.在startWebloci.cmd 中 set CLASSPATH=%SAVE_CLASSPATH% 下增加一行 JAVA_OPTIONS="${JAVA_OPTIONS} -Dfile ...

  6. 12Js_原型对象

    对象描述: 1. 每个对象中都有一个_proto_属性. JS世界中没有类(模具)的概念,对象是从另一个对象(原型)衍生出来的,所以每个对象中会有一个_proto_属性指向它的原型对象.(参考左上角的 ...

  7. VSCode插件开发全攻略(五)跳转到定义、自动补全、悬停提示

    更多文章请戳VSCode插件开发全攻略系列目录导航. 跳转到定义 跳转到定义其实很简单,通过vscode.languages.registerDefinitionProvider注册一个provide ...

  8. DOM1级问题与DOM2级事件

    前几天有小伙伴问过我一个问题,为什么有DOM 0级事件以及DOM2级事件,但是却没有DOM1级事件呢?那我们今天就来说一说DOM的级别问题. 同时推荐伙伴们可以看看尚学堂有关JavaScript BO ...

  9. 双十一福利,阿里云1核2G一年最低只要99

    活动期间,新用户可任选1款购买,限购1台,拼团后团内每增加1名新购用户,全团再享10%优惠 (50%封顶),买贵返差 又是只给新用户的福利,比上次的699一年的活动要差一点.如果之前注册了没下手的用户 ...

  10. JavaScript笔记整理

    整理一篇工作中的JavaScript脚本笔记,不定时更新,笔记来自网上资料或者自己经验归纳. (1) 获取Url绝对路径 function getUrlRelativePath() { var url ...