概率期望 DP 题解合集
期望这东西学了一次忘了,再学一次过了两天又不会了。我是鱼。
故写此博客以便加深记忆及日后复习。
NOIP 前恶补期望(? 希望有用,RP++()
经典问题 1
某事件发生概率为 \(p\),则该事件首次发生的期望次数为 \(\frac{1}{p}\)。
证明 link 懒得打 latex
经典问题 2 SP1026 FAVDICE - Favorite Dice
三倍经验:lgP1291/UVA10288
设已经有 \(k\) 个面出现过。则出现一个新面的概率为 \(\frac{n-k}{n}\),由上题得出现期望次数为 \(\frac{n}{n-k}\)。
故答案为 \(\sum\limits_{i=0}^{n-1}\frac{n}{n-i}=nH_n\)。(H:调和级数)
CF1540B Tree Array
- 对于树上连通块问题先枚举树根。
考虑枚举每个点对 \((u,v)\) 对答案的贡献 (u<v)。
设 \(x=dep[u]-dep[LCA],y=dep[v]-dep[LCA]\),再设 \(g_{x,y}\) 表示第一个点需要走 \(x\) 步,第二个点需要走 \(y\) 步,且第一个点先走到的概率。
则 \(g_{i,j}=(g_{i,j-1}+g_{i-1,j})/2\) 。预处理即可。
ARC150D Removing Gacha
考虑点 \(u\) 期望被选了多少次,设 \(dep_u\) 为 \(x\)。
由经典问题 2 得,将从 \(u\) 到根节点这条链上的点选满期望需要 \(xH_x\) 次。
每次选到 \(u\) 的概率为 \(\frac{1}{x}\),那么在这个过程中 \(u\) 期望被选了 \(H_x\) 次。
答案即 \(\sum\limits_{i=1}^ndep_i\)。
连写带调用了一个小时的原因居然是把快速幂敲挂了,一直在检查后面,真服了。
CF850F Rainbow balls
光看懂题解看了一个小时/qd
钦定最后所有球的颜色为 \(x\)。设 \(f_i\) 表示已有 \(i\) 个球为给定颜色。
设 \(p\) 为选出两个球,第一个颜色为 \(x\),第二个颜色不为 \(x\) 的概率。则:
\]
\]
其中 \(v\) 为此步对答案的贡献,即在当前局面下 \(x\) 成为留到最后颜色的概率。(所以不是 1)
设 \(g_i\) 为有 \(i\) 个 \(x\) 时留到最后的概率。则有
\]
\]
\]
解得
\]
\]
移项,得
\]
\]
考虑边界,当 \(i=1\) 时不存在 \(f_0\),代入上式得
\]
显然 \(f_s=0\)。(我为啥这么显然的事想了半天
那么
\]
\]
将 \(f_2=2f_1-1\) 代入,得
\]
至此,已知 \(f_1\),\(f_2\),根据 \(f_{i+1}=2f_i-f_{i-1}-\frac{s-1}{s-i}\) 递推即可。
答案即为 \(\sum\limits_{i=1}^nf_{a_i}\)。
P2973 [USACO10HOL]Driving Out the Piggies G
终于在高斯消元求期望上迈出了从口胡到代码实现的第一步(?
设 \(f_i\) 为炸弹最后爆炸时在点 \(i\) 的概率。
那么 \(f_i=\sum f_j\times (1-\frac{p}{q})\times \frac{1}{d_j}\)。其中 \(d_j\) 表示点 \(j\) 的度数,且 \(i,j\) 之间有边。
当 \(i=1\) 时,另有 \(f_1=\frac{p}{q}+\sum f_j\times (1-\frac{p}{q})\times \frac{1}{d_j}\)。
高斯消元即可。
P1654 OSU!
我怎么又把期望忘干净了啊。我还会点啥啊。
类比一下高校进阶那个 B 题(? 为什么当时没写博客来着
维护一个 \(len\) 表示前面期望连续长度。
然后它假了。或许是因为 \(E(x^2)!=E(x)^2\)(?
所以还要维护 \(len^2\) 的期望。式子不贴了。
CF908D New Year and Arbitrary Arrangement
期望神仙题++。
设 \(f_{i,j}\) 表示 前面已经有 \(i\) 个 a
,有 \(j\) 对 ab
的方案数。(这个状态设计好神仙,我也不知道怎么能想到qwq
设 \(A=\frac{pa}{pa+pb},B=\frac{pb}{pa+pb}\)。
那么转移就是 \(f_{i,j}=A\times f_{i+1,j}+B\times f_{i,j+i}\)。
边界条件 \(f_{i,j}=i+j+\frac{pa}{pb}(i+j \ge k)\)。
大致推导一下:
当 \(i+j\ge k\) 时,只要后面再出现一个 b
就会结束。所以最后一段是一串 a
加上一个 b
。
根据经典结论 1 可知,b 期望第一次出现的时刻为 \(\frac{1}{B}=\frac{pa+pb}{pb}\)。那么期望出现 \(a\) 的个数为 \(\frac{pa+pb}{pb}-1=\frac{pa}{pb}\),即期望的 ab
对个数。
记搜实现即可。
由于 \(f_{0,0}\) 会转移到自己,我们从 \(f_{1,0}\) 开始转移。对答案没有影响。
CF749E Inversions After Shuffle
纯推柿子题,跟 DP 好像没啥关系。不过不知道该放在哪,所以也写在这篇博客里。
考虑重排前下标为 \((i,j)\) 的点对对答案的贡献。其中 \(i<j\)。
那么分为两种情况:
- \(i,j\) 都在选中的段内
设选中段为 \([l,r]\),则满足 \(l\in [1,i],r\in [j,n]\),易知全部可能的选法有 \(\frac{n(n+1)}{2}\) 种。那么选中的段满足此情况的概率为 \(\frac{2i(n-j+1)}{n(n+1)}\)。
\((i,j)\) 在随机重排后有 \(\frac{1}{2}\) 的可能构成逆序对,则 \((i,j)\) 对答案的贡献为 \(\frac{i(n-j+1)}{n(n+1)}\)。
这种情况的总贡献为
=\sum\limits_{i=1}^n\sum\limits_{j=1}^{n-i}\frac{ij}{n(n+1)}\\
=\sum\limits_{i=1}^n \frac{i}{n(n+1)} \times \frac{(n-i+1)(n-i)}{2}\\
=\sum\limits_{i=1}^n \frac{i(n-i+1)(n-i)}{2n(n+1)}
\]
- \(i,j\) 不都在选中段内
显然概率为 \(1-\frac{2i(n-j+1)}{n(n+1)}\)。
由于 \(i,j\) 不都在选中段内,重排后 \(i,j\) 的相对位置不变。则当 \(a_i>a_j\) 时,\((i,j)\) 对答案有贡献。
总贡献为 \(\sum \limits_{i=1}^n \sum\limits_{j=i+1}^n [a_i>a_j]\frac{n(n+1)-2i(n-j+1)}{n(n+1)}\)。
这个式子在树状数组求逆序对的同时维护一下就好了。
CF643E Bear and Destroying Subtrees
感觉不是第一次见这种 忽视精度误差 做法的题,但是没有想出来。该打。
在每条边有 \(\frac{1}{2}\) 概率断掉的情况下,可知不论什么形态,树的深度大于 \(60\) 的概率都是远小于 \(10^6\) 的,可以忽略不计。
所以我们只考虑深度不大于 \(60\) 的情况对答案的贡献。
设 \(f_{u,i}\) 表示子树 \(u\) 的深度不大于 \(i\) 的概率。
那么可以得到 \(f_{u,i}=\prod\limits_{v\in son_u} \frac{1}{2} (f_{v,i-1}+1)\)。
则 \(u\) 的子树深度期望就是 \(\sum\limits_{i=1}^{60} i(f_{u,i}-f_{u,i-1})\)。
显然 \(f_{u,60}\) 趋近于 \(1\),那么这个式可以化简等于 \(60-\sum_{i=1}^{59}f_{u,i}\)。
注意题里的深度是我们设的深度 \(-1\)。
当新建节点 \(u\) 时,它只对上面 \(60\) 个祖先的 \(f\) 值产生影响,依次修改即可。
概率期望 DP 题解合集的更多相关文章
- 【bzoj4832】[Lydsy2017年4月月赛]抵制克苏恩 概率期望dp
题目描述 你分别有a.b.c个血量为1.2.3的奴隶主,假设英雄血量无限,问:如果对面下出一个K点攻击力的克苏恩,你的英雄期望会受到到多少伤害. 输入 输入包含多局游戏. 第一行包含一个整数 T (T ...
- 【loj6191】「美团 CodeM 复赛」配对游戏 概率期望dp
题目描述 n次向一个栈中加入0或1中随机1个,如果一次加入0时栈顶元素为1,则将这两个元素弹栈.问最终栈中元素个数的期望是多少. 输入 一行一个正整数 n . 输出 一行一个实数,表示期望剩下的人数, ...
- 【BZOJ-1419】Red is good 概率期望DP
1419: Red is good Time Limit: 10 Sec Memory Limit: 64 MBSubmit: 660 Solved: 257[Submit][Status][Di ...
- Codeforces - 1264C - Beautiful Mirrors with queries - 概率期望dp
一道挺难的概率期望dp,花了很长时间才学会div2的E怎么做,但这道题是另一种设法. https://codeforces.com/contest/1264/problem/C 要设为 \(dp_i\ ...
- Codeforces 908 D.New Year and Arbitrary Arrangement (概率&期望DP)
题目链接:New Year and Arbitrary Arrangement 题意: 有一个ab字符串,初始为空. 用Pa/(Pa+Pb)的概率在末尾添加字母a,有 Pb/(Pa+Pb)的概率在末尾 ...
- 概率期望dp
对于概率dp,我一直都弄得不是特别明白,虽然以前也有为了考试去突击过,但是终究还是掌握得不是很好,所以决定再去学习一遍,把重要的东西记录下来. 1.hdu4405 Description 在一个 \( ...
- [BZOJ4832]抵制克苏恩(概率期望DP)
方法一:倒推,最常规的期望DP.f[i][a][b][c]表示还要再攻击k次,目前三种随从个数分别为a,b,c的期望攻击英雄次数,直接转移即可. #include<cstdio> #inc ...
- LightOJ 1030 Discovering Gold (概率/期望DP)
题目链接:LightOJ - 1030 Description You are in a cave, a long cave! The cave can be represented by a \(1 ...
- 华南理工大学“三七互娱杯”程序设计竞赛 HRY and codefire(概率期望DP)
https://ac.nowcoder.com/acm/contest/874/A 题目:有两个账号 , 一开始都为0级 , 求任意一个账号升级到N的期望 要求:如果当前账号嬴了 , 就继续沿用当前的 ...
- [NOIP2016]换教室(概率期望$DP$)
其实吧我老早就把这题切了--因为说实话,这道题确实不难啊--李云龙:比他娘的状压DP简单多了 今天我翻以前在Luogu上写的题解时,突然发现放错代码了,然后被一堆人\(hack\)--蓝瘦啊\(ORZ ...
随机推荐
- AR增强现实 之Metaio For Unity 开发 之HelloWorld
开发工具 unity 4.6 MetaioSDK 6.1 代码编辑器 VS 2013 上图不会配置的请自行百度 1.创建项目并且导入Metaio SDk 开发包 2.导入后目录图 ...
- IoTOS v1.0.0 开源 高效 实用 | 免费商用
IoTOS v1.0.0 一款高效实用 IoTCard 管理 & 运营系统. IoTOS 目前取名范围过大,其主要用于IoTCard 管理业务以高效.健壮.灵活设计 SaaS.多语言.机器人推 ...
- 【2020GET】即构科技蒋宁波:教育行业客户需求的核心是什么?
11月24日,由即构科技主办的2020GET大会教育科技分论坛在北京成功召开,来自叮咚课堂.小冰.360OS.蕃茄田艺术.即构科技的6位资深教育/科技大咖,在论坛上进行深度分享. 以下为即构科技联合创 ...
- 平时容易忽视的地方之一:java在抽取方法时,什么时候该用void
当一个类中多个方法有相同编码,或该部分编码可以作为一个整体,适合抽取出一个方法时,要注意这个抽取的方法的返回值,什么时候可以用void,什么时候不能用void? 先看代码: import lombok ...
- 行行AI人才直播第11期:墨尔本大学数据科学高级讲师-宫明明《机器学习:从统计到因果,人工智能的发展之路》
行行AI人才是博客园和顺顺智慧共同运营的AI行业人才全生命周期服务平台. 马克斯·普朗克智能系统中心主任曾在国际数学家大会进行了题为 From Statistical to Causal Learni ...
- nrm工具
nrm 工具 nrm(npm registry manager)是npm镜像源管理工具.可快速帮助查看.切换.管理npm镜像源. 安装 npm install -g nrm 查看 nrm ls 切换 ...
- SQL Server 配置允许远程连接
前言 需要别人远程你的数据库,首先需要的是在一个局域网内,或者连接的是同一个路由器,接下来就是具体步骤: 1.首先是要检查SQLServer数据库服务器中是否允许远程链接.其具体操作为: 1. 打开数 ...
- altas2.1.0编译、安装、集成CDH6.3.2
目录 altas2.1.0编译.安装.集成CDH6.3.2 一: Atlas源码下载 二: Atlas源码编译 1.修改altas项目主pom文件,即需要编译的CDH6.3.2对应版本信息 2.Atl ...
- (转)[Android测试] Android Studio+Appium+Java+Windows 自动化测试之二:Appium环境安装搭建
一.需要下载安装的东西 1. 文件下载 网上也有挺多安装教程的,这里我提供我的安装方法.Win10 64位.一些文件我在后面打包. 2016.9.12号本人安装记录. SDK: 由于我是搞Androi ...
- avue-crud属性配置项参数笔记分享
Avue 是一个基于Element-plus低代码前端框架,它使用JSON 配置来生成页面,可以减少页面开发工作量,极大提升效率: 虽然Avue官网上面都有这些配置说明,但是如果刚开始接触不熟悉框架的 ...