【学习笔记】Min-max 容斥
经常和概率期望题相结合。
对于全序集合 \(S\),有:
\]
\]
证明
对于 \(x\in S\),假设 \(x\) 是 \(S\) 中第 \(k\) 大的元素,则建立映射\(f:x\rightarrow \{1,2,\dots,k\}\)。
可以得到对于 \(x,y\in S\),有:
\]
\]
因此得到:
\vert f(\max S)\vert&=\bigg\vert \bigcup\limits_{x\in S}f(x)\bigg\vert \\
&=\sum\limits_{T\subseteq S}(-1)^{\vert T\vert -1}\bigg\vert \bigcap\limits_{x\in T}f(x)\bigg\vert\\
&=\sum\limits_{T\subseteq S}(-1)^{\vert T\vert -1}\ \vert f(\min T)\vert\\
\end{aligned}\]
将 \(\vert f(\max S)\vert\) 映射回原式,从而得证。
通俗的说,就是对于除本身集合的其他的集合取最小值时,集合大小为奇数时加上,大小为偶数时减掉,而选奇数个和选偶数个的方案数又是一样的,于是抵消掉了,最后只剩下 \(f(\max\limits_{x\in S} x)\)的贡献。
拓展
\]
背他就完了
应用
常见的应用:有 \(n\) 个变量,每个变量出现的概率为 \(p\)。问每一个变量都出现的期望时间。
根据期望的线性性质,可以得到
\]
其中 \(E(\min T)\) 显然就是 \(\cfrac{1}{\sum\limits_{i\in T}p_i}\)。
例题:礼物
夏川的生日就要到了。作为夏川形式上的男朋友,季堂打算给夏川买一些生日礼物。
商店里一共有种礼物。夏川每得到一种礼物,就会获得相应喜悦值 $ W_i$(每种礼物的喜悦值不能重复获得)。
每次,店员会按照一定的概率 \(P_i\)(或者不拿出礼物),将第i种礼物拿出来。 季堂每次都会将店员拿出来的礼物买下来。没有拿出来视为什么都没有买到,也 算一次购买。
众所周知,白毛切开都是黑的。所以季堂希望最后夏川的喜悦值尽可能地高。
求夏川最后最大的喜悦值是多少,并求出使夏川得到这个喜悦值,季堂的期望购买次数。
显然的 Min-max 容斥模板题。最大的喜悦值就是给出的喜悦值的和,而剩下就是套式子了。用 dfs 枚举子集 \(T\),时间效率 \(O(2^n)\) ,空间效率 \(O(n)\)。
#include <bits/stdc++.h>
using namespace std;
const int maxn=30;
int n;
long long ans;
double res;
double p[maxn];
void dfs(int now,double sum,int opt){
if(now==n+1){
if(sum>1e-9)res+=1.0*opt/sum;
return;
}
dfs(now+1,sum+p[now],-opt);
dfs(now+1,sum,opt);
}
int main(){
scanf("%d",&n);
for(int i=1;i<=n;i++){
long long u;
scanf("%lf%lld",&p[i],&u);
ans+=u;
}
printf("%lld\n",ans);
dfs(1,0,-1);
printf("%.3lf\n",res);
return 0;
}
【学习笔记】Min-max 容斥的更多相关文章
- 快速沃尔什变换 (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 ...
- min-max容斥学习笔记
min-max容斥学习笔记 前置知识 二项式反演 \[ f(n)=\sum_{i=0}^n\binom{n}{i}g(i)\Leftrightarrow g(n)=\sum_{i=0}^n(-1)^{ ...
- [总结] Min-Max容斥学习笔记
min-max 容斥 给定集合 \(S\) ,设 \(\max(S)\) 为 \(S\) 中的最大值,\(\min(S)\) 为 \(S\) 中的最小值,则: \[\max(S)=\sum_{T\in ...
- [学习笔记]min-max容斥
[Learning]min-max容斥以及推广 min-max容斥 就是max(a,b)=min(a)+min(b)-min(a,b) max(a,b,c)=a+b+c-min(a,b)-min(a, ...
- MinMax 容斥 学习笔记
基本形式 \[ \max(S) = \sum_{T\subseteq S, T \neq \varnothing} (-1)^{|T|-1}\min(T) \] 证明 不提供数学证明. 简要讲一下抽象 ...
- $Min\_25$筛学习笔记
\(Min\_25\)筛学习笔记 这种神仙东西不写点东西一下就忘了QAQ 资料和代码出处 资料2 资料3 打死我也不承认参考了yyb的 \(Min\_25\)筛可以干嘛?下文中未特殊说明\(P\)均指 ...
- [模板] 容斥原理: 二项式反演 / 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 ...
随机推荐
- Odoo10中calendar视图点击事件
有个需求,需要根据该条记录的状态字段来控制点击calendar时是否需要打开form视图,解决方案如下:重写了web_calendar的get_fc_init_options()方法中的eventCl ...
- Fiddler的基本界面介绍
前言 fiddler的界面,主要是分以下6个模块. 一:主菜单栏: 可以参考:https://www.cnblogs.com/sjl179947253/p/7620524.html 二:工具栏: 1. ...
- Django设置前端背景图片
设置 setting.py 文件 STATIC_URL = '/static/' STATICFILES_DIRS = [ os.path.join(BASE_DIR, "static&qu ...
- Oracle学习(九)存过、游标、RECORD整合
一.代码 /*1.定义存过*/ CREATE OR REPLACE PROCEDURE PRO_RE_USER_ORD_GOODS( --NOW_DATE格式:YYYYMMDD 如:20190801( ...
- C语言入门经典书目推荐--转
国内良莠不齐的C语言教程数不胜数,同名如"C程序设计""C语言程序设计""C语言程序设计教程"的都多如牛毛,这些不知名的就不予考虑了,要看就 ...
- MySQL手注之盲注(布尔)
布尔注入: 当我们在注入的过程中输入的语句在页面没有数据返回点,这就需要利用布尔型盲注一步步来猜取想要的数据.(盲注分为布尔盲注和时间盲注) 盲注常用函数: length() 返回字符串的长度, 可 ...
- Devops实战(一)Docker的部署安装以及Docker-Compose的使用
Docker的部署安装以及Docker-Compose的使用 1.docker和docker-Compose简介 Docker是一组平台即服务(PaaS)产品,它们使用操作系统级虚拟化以称为容器的软件 ...
- Spring Environment对象获取属性
String[] activeProfiles = env.getActiveProfiles();//获取当前是启用哪一个个配置文件 System.out.println(Arrays.toStri ...
- mybatis里的mapper,@Mapper参数,Mapper.xml文件 sql语句Select+where语句
提示:有不清楚的可以试着看一下我最后的连接,是跟这些内容相关的 Mapper文件,特殊符号: 转义符号 原符号 中文意思 &It; < 小于号 > > 大于号 & & ...
- RT Thread的SPI设备驱动框架的使用以及内部机制分析
注释:这是19年初的博客,写得很一般,理解不到位也不全面.19年末得空时又重新看了RTThread的SPI和GPIO,这次理解得比较深刻.有时间时再整理上传. -------------------- ...