说实话这些博客早晚都要整理后上m***999。

最值反演是针对一个集合中最大/最小值的反演。
\[
\max\{S\}=\sum_{T\subset S}(-1)^{|T|+1}\min\{T\}
\]
\[
\min\{S\}=\sum_{T\subset S}(-1)^{|T|+1}\max\{T\}
\]

如{1,2,3,4}的最大值=1+2+3+4-1-1-1-2-2-3+1+1+1+2-1=4。

求LCM

将每个数\(a_i\)分解为\(\prod_{p_j=prime[i][]} p_j^{k_j}​\)。则LCM就是求每个质因数中指数的最大值之积,而GCD是每个质因数中的指数的最小值之积。因此由最值反演可得
\[
\rm{lcm}\{S\}=\prod_{T\subset S}(\gcd\{T\})^{(-1)^{|T|+1}}
\]

求期望

对原式套一个期望,就有该式子的期望形式:
\[
\mathbb{E}[\max\{S\}]=\sum_{T\subset S}(-1)^{|T|+1}\mathbb{E}[\min\{T\}]
\]

例题

给定集合\(S\)中每个元素出现的概率\(p_i\),其和为\(1\),每次会按概率出现一个元素。求每个元素都至少出现一次的期望次数。

可用状压DP解决,复杂度\(O(2^n\cdot n)\)。

考虑定义集合\(T\)中元素的比较运算为最早出现时间更早。则\(\mathbb{E}[\min\{T\}]\)的意义为\(T\)中出现任意一个元素的期望次数。因为每次只能出现一个数,出现任意一个数的概率显然就是集合中所有概率的和。因此这个期望等于\(\frac{1}{\sum_{i\in T}p_i}\)。最后答案即为\(\mathbb{E}[\max\{S\}]\),用上面的反演即可,时间复杂度为\(O(2^n)\)。

给定集合\(S\)中每个元素每次出现的概率\(p_i\),元素互相独立。求每个元素都至少出现一次的期望次数。

此时\(T\)中出现任意一个元素的概率是\(1\)减去所有元素都不出现的概率。

最值反演 min-max容斥的更多相关文章

  1. Coprime (单色三角形+莫比乌斯反演(数论容斥))

    这道题,先说一下单色三角形吧,推荐一篇noip的论文<国家集训队2003论文集许智磊> 链接:https://wenku.baidu.com/view/e87725c52cc58bd631 ...

  2. BZOJ2301:莫比乌斯反演+二维容斥解决GCD范围计数

    这个题是刚才刷的第一道反演题的拓展版,加上一个容斥就可以了 #include<cstdio> #include<algorithm> using std::min; ; int ...

  3. 【容斥原理,莫比乌斯反演】用容斥替代莫比乌斯反演第二种形式解决gcd统计问题

    名字虽然很长.但是其实很简单,对于这一类问题基本上就是看你能不能把统计的公式搞出来(这时候需要一个会推公式的队友) 来源于某次cf的一道题,盼望上紫的我让潘学姐帮我代打一道题,她看了看跟我说了题解,用 ...

  4. LOJ #2542. 「PKUWC 2018」随机游走(最值反演 + 树上期望dp + FMT)

    写在这道题前面 : 网上的一些题解都不讲那个系数是怎么推得真的不良心 TAT (不是每个人都有那么厉害啊 , 我好菜啊) 而且 LOJ 过的代码千篇一律 ... 那个系数根本看不出来是什么啊 TAT ...

  5. min-max 容斥

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

  6. 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 ...

  7. [HDU4336]Card Collector(min-max容斥,最值反演)

    Card Collector Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)To ...

  8. CF285 E Positions in Permutations——“恰好->大于”的容斥和允许“随意放”的dp

    题目:http://codeforces.com/contest/285/problem/E 是2018.7.31的一场考试的题,当时没做出来. 题解:http://www.cnblogs.com/y ...

  9. min-max容斥/最值反演及其推广

    设\(S\)是一个集合,\(\max(S)\)和\(\min(S)\)分别表示集合中的最大值与最小值. 那么有如下式子成立: \[\max(S)=\sum_{T \subseteq S}(-1)^{| ...

随机推荐

  1. 遍历结构体内部元素和值(Name and Value)

    代码: DataStruct.MessageStruct ms = new DataStruct.MessageStruct();//实例化结构体   //遍历结构体  foreach (System ...

  2. 简化OSI七层网络协议

    OSI层 功能 TCP/IP协议 设备 应用层 文件传输,电子邮件,文件服务,虚拟终端 TFTP,HTTP,SNMP,FTP,SMTP,DNS,Telnet 表示层 数据格式化,代码转换,数据解密 会 ...

  3. [20181130]hash冲突导致查询缓慢.txt

    [20181130]hash冲突导致查询缓慢.txt --//昨天看了链接https://jonathanlewis.wordpress.com/2018/11/26/shrink-space-2/, ...

  4. EXT.NET初学

    1.ext:Hidden 必须在body里面有ext:ResourceManager的情况下才能运行 2.ext:Store里面不能有文字

  5. jsp include 报错:illegal to have multiple occurrences of contentType with different values (old: text/html; charset=UTF-8, new: text/html; carset=UTF-8)

    严重: Servlet.service() for servlet jsp threw exception org.apache.jasper.JasperException: /jsp.jsp(1, ...

  6. web前端(2)—— 前端技术介绍

    前端技术 前文了解了什么是前端,那么前端技术到底有哪些呢?最核心的就这三个: html/html5 css/css3 javascript 什么是HTML HyperText Markup Langu ...

  7. Sqlserver分区表

    1. 分区表简介 分区表在逻辑上是一个表,而物理上是多个表.从用户角度来看,分区表和普通表是一样的.使用分区表的主要目的是为改善大型表以及具有多个访问模式的表的可伸缩性和可管理性. 分区表是把数据按设 ...

  8. 优雅的使用Spring

    Bean声明的三种方式: 1.@Component, @Service, @Repository,@Controller 用于声明一个组件,程序启动时会扫描这些组件,并创建实例. 2.在applica ...

  9. 【PAT】B1011 A+B 和 C

    注意数据的范围,使用long long就行了 #include<stdio.h> int main(){ int N;scanf("%d",&N); for(i ...

  10. JSONCkecker(C语言版本)

    /* JSON_checker.h */ typedef struct JSON_checker_struct { int valid; int state; int depth; int top; ...