概率期望 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 ...
随机推荐
- 家人们,我把B站首页写出来了!!!
在学习HTML5和CSS3的过程中,总是感觉没有一个完全自己做出来的页面,一直在各大网站上面寻找合适的适合自己去仿写的页面代码,奈何找了很久都没有找到,在CSDN上找的各种什么电商页面,小米商城页面之 ...
- Spring-Bean(三)
Bean生命周期配置 init-method:指定类中的初始化方法名称 destory-method:指定类中销毁方法名称 Bean标签配置 <bean id="UserDao&quo ...
- 源码解析Collections.sort ——从一个逃过单测的 bug 说起
本文从一个小明写的bug 开始,讲bug的发现.排查定位,并由此展开对涉及的算法进行图解分析和源码分析. 事情挺曲折的,因为小明的代码是有单测的,让小明更加笃定自己写的没问题.所以在排查的时候,也经历 ...
- 2021-7-6 Vue实现记事本功能
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <script sr ...
- Builder 生成器模式简介与 C# 示例【创建型2】【设计模式来了_2】
〇.简介 1.什么是生成器模式? 一句话解释: 在构造一个复杂的对象(参数多且有可空类型)时,通过一个统一的构造链路,可选择的配置所需属性值,灵活实现可复用的构造过程. 生成器模式的重心,在于分离 ...
- 利用文件包含漏洞包含ssh日志拿shell
今天看文章学了一招,有包含漏洞无法传文件的时候用 目标服务器环境为ubuntu,ssh登录日志文件是/var/log/auth.log 找个Linux的环境执行ssh '<? phpinfo() ...
- 《VTK图形图像开发进阶》第1-2章——一个稍微复杂的VTK程序
VTK概览 数据可视化主要是通过计算机图形学的方法,以图形.图像等形式清晰有效地传递.表达信息,VTK是数据可视化的工具包. VTK全称(Visualization Toolkit),即可视化工具包, ...
- [db2]数据备份与还原
前言 备份还原db2数据库一般有两种方式,一种是使用db2 backup + db2 restore,另一种是db2move + db2look.前者备份的数据库文件不能使用后者的方式进行还原. 实例 ...
- 一键部署 Umami 统计个人网站访问数据
谈到网站统计,大家第一时间想到的肯定是 Google Analytics.然而,我们都知道 Google Analytics 会收集所有用户的信息,对数据没有任何控制和隐私保护. Google Ana ...
- .NET Core多线 (5) 常见性能问题
合集:.NET Core多线程温故知新 .NET Core多线程(1)Thread与Task .NET Core多线程(2)异步 - 上 .NET Core多线程(3)异步 - 下 .NET Core ...