min-max容斥学习笔记
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))
\]
下面给几个例题例题
-
题意:有\(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}
\]
就是先把总概率算一下的事情 -
题意:初始有一个数\(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\)内求出 -
题意:树上随机游走,给定起点,每次询问至少走过一次点集的期望时间
直接套路上去考虑如何求\(\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}
\]参考资料
min-max容斥学习笔记的更多相关文章
- [总结] Min-Max容斥学习笔记
min-max 容斥 给定集合 \(S\) ,设 \(\max(S)\) 为 \(S\) 中的最大值,\(\min(S)\) 为 \(S\) 中的最小值,则: \[\max(S)=\sum_{T\in ...
- 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<= ...
随机推荐
- 对国内IoT的展望
这个世界上让任何人最安心的,莫过于自己能够完全控制,反之什么都无法控制的,万念俱灰之下,最后只有自我了结.芸芸众生都是在这个之间徘徊,尽可能的去掌控,尽可能的去拥有,觉得能够安心,其实只是自由的内心被 ...
- FocusListener焦点监听器
[FocusListener焦点监听器] public class Demo extends JFrame { public Demo(){ setDefaultCloseOperation(Wind ...
- angular应用容器化部署
angular 应用容器化部署 Intro 我自己有做一个个人主页,虽然效果不怎么样(不懂设计的典型程序猿...),但是记录了我对于前端框架及工具的一些实践, 从开始只有一个 angularjs 制作 ...
- MySQL新参数log_error_verbosity
在介绍这个参数前,我们先聊聊参数log_warnings.我们知道MySQL中,其中log_error定义是否启用错误日志的功能和错误日志的存储位置,log_warnings定义是否将告警信息(w ...
- 从0开始的Python学习005运算符与表达式
地三鲜 土豆+茄子+青椒=地三鲜 这就是一个表达式,表达式是由运算符和操作数组成的. 土豆.茄子和青椒是操作数,炒是运算符,而地三鲜就是最后结果也就是这个表达式的值. 表达式 一个表达式可以分解为运 ...
- Linux PXE无人值守网络装机
Linux PXE无人值守网络装机 一.实验环境: 2台Linux系统(RHEL6.5版本),1台作为:PXE远程安装服务器(安装dhcp服务.ftp服务.tftp服务),另1台作为:客户端(未装RH ...
- 【PAT】B1013 数素数
用埃氏筛筛出素数表(节约时间) 素数的筛选范围不能小了,一定要够大 #include<stdio.h> int main(){ int N,M;scanf("%d %d" ...
- LeetCode算法题-Hamming Distance(Java实现)
这是悦乐书的第237次更新,第250篇原创 01 看题和准备 今天介绍的是LeetCode算法题中Easy级别的第104题(顺位题号是461).两个整数之间的汉明距离是相应位不同的位置数.给定两个整数 ...
- Scrapy案例01-爬取传智播客主页上的老师信息
目录 1. 新建scrapy项目 2. 爬虫文件: 2.1. 查看需要爬取内容存在哪里: 2.2. 设置item需要保存的数据变量 2.3. 创建爬虫文件 2.4. 保存数据 2.5. yield的用 ...
- C#基础知识之特性
一.什么是特性 个人理解:特性本质上也是有一种类,通过添加特性,就可以实例化这个特性类:添加特性就是在类.方法.结构.枚举.组件等上面加一个标签,使这些类.方法.结构.枚举.组件等具有某些统一的特征, ...