[总结] Min-Max容斥学习笔记
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容斥学习笔记的更多相关文章
- min-max容斥学习笔记
min-max容斥学习笔记 前置知识 二项式反演 \[ f(n)=\sum_{i=0}^n\binom{n}{i}g(i)\Leftrightarrow g(n)=\sum_{i=0}^n(-1)^{ ...
- MinMax 容斥 学习笔记
基本形式 \[ \max(S) = \sum_{T\subseteq S, T \neq \varnothing} (-1)^{|T|-1}\min(T) \] 证明 不提供数学证明. 简要讲一下抽象 ...
- javascript设计模式(张容铭)学习笔记 - 外观模式绑定事件
有一个需求要为document对象绑定click事件来是想隐藏提示框的交互功能,于是小白写了如下代码: document.onclick = function(e) { e.preventDefaul ...
- javascript设计模式(张容铭)学习笔记 - 照猫画虎-模板方法模式
模板方法模式(Template Method):父类中定义一组操作算法骨架,而降一些实现步骤延迟到子类中,使得子类可以不改变父类的算法结构的同时可重新定义算法中某些实现步骤. 项目经理体验了各个页面的 ...
- [模板] 容斥原理: 二项式反演 / 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 ...
- 快速沃尔什变换 (FWT)学习笔记
证明均来自xht37 的洛谷博客 作用 在 \(OI\) 中,\(FWT\) 是用于解决对下标进行位运算卷积问题的方法. \(c_{i}=\sum_{i=j \oplus k} a_{j} b_{k} ...
- min-max 容斥
$\min - \max$ 容斥 Part 1 对于简单的$\min - \max$容斥有一般形式,表达为:$\max(S)=\sum\limits_{T\subseteq S}(-1)^{|T|-1 ...
- 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 ...
- 15ecjtu校赛1006 (dfs容斥)
Problem Description 在平面上有一个n*n的网格,即有n条平行于x轴的直线和n条平行于y轴的直线,形 成了n*n个交点(a,b)(1<=a<=n,1<=b<= ...
随机推荐
- require() module.export Object.keys()
import API from"../../api/api.js"; var data = require('../../utils/data.js').songs; // ...
- html、css基础整理
1.块元素与行内元素之间的转换: HTML可以将元素分类方式分为行内元素.块状元素和行内块状元素三种.这三者是可以互相转换的,使用display属性能够将三者任意转换: (1)display:inli ...
- @Slf4j注解实现日志输出
自己写日志的时候,肯定需要: private final Logger logger = LoggerFactory.getLogger(LoggerTest.class); 每次写新的类,就需要重新 ...
- JS canvas 画板 撤销
<!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content ...
- 又见C++
一年了,重新学奥赛,感慨蛮多. 首先就是觉得去年白学了,MinGW操作基本上忘完了,cry: 然后发现做题速度还比不上刚学的,一道题能错三遍,依旧cry; 不过总算弄明白double和int,还找到了 ...
- kafka学习笔记——基本概念与安装
Kafka是一个开源的,轻量级的.分布式的.具有复制备份.基于zooKeeper协调管理的分布式消息系统. 它具备以下三个特性: 能够发布订阅流数据: 存储流数据时,提供相应的容错机制 当流数据到达时 ...
- python爬虫学习之Scrapy框架的工作原理
一.Scrapy简介 Scrapy是一个为了爬取网站数据,提取结构性数据而编写的应用框架. 可以应用在包括数据挖掘,信息处理或存储历史数据等一系列的程序中. 其最初是为了 页面抓取 (更确切来说, 网 ...
- 【渗透技术】渗透测试技术分析_TomCat
[渗透技术]渗透测试技术分析_TomCat 本文转自:i春秋论坛 渗透测试-中间人攻击(原理)说起“中间人攻击”我想大多数对渗透测试又了解的朋友都多少有所了解,因为我们用到的次数真是非常的多.它可以将 ...
- Android Studio 调试各种国产手机经验总结
为何加上“国产”二字呢,因为目前测试时就国产手机存在的安装问题多,而且都很奇葩,不得不说对于开发者时很不友好的. 下面就是个人总结的针对不同的机型调试时出现的问题做的总结: 1.VIVO 手机 解决方 ...
- Java 11 究竟比 8 快了多少?
阅读本文大概需要 1.2 分钟. 作者:h4cd 来源:开源中国社区 开源规划调度引擎 OptaPlanner 官网发布了一个 Java 11 GC 性能基准测试报告. 当前使用量最大的 Java 版 ...