期望这东西学了一次忘了,再学一次过了两天又不会了。我是鱼。

故写此博客以便加深记忆及日后复习。

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\) 的概率。则:

\[p=\frac{i(s-i)}{s(s-1)}
\]
\[f_i=f_{i-1}p+f_{i+1}p+f_i(1-2p)+v
\]

其中 \(v\) 为此步对答案的贡献,即在当前局面下 \(x\) 成为留到最后颜色的概率。(所以不是 1)

设 \(g_i\) 为有 \(i\) 个 \(x\) 时留到最后的概率。则有

\[g_0=0,g_s=1
\]
\[g_i=g_{i-1}p+g_{i+1}p+(1-2p)g_i
\]
\[g_i-g_{i-1}=g_{i+1}-g_i
\]

解得

\[g_i=v=\frac{i}{s}
\]
\[f_i=f_{i-1}p+f_{i+1}p+f_i(1-2p)+\frac{i}{s}
\]

移项,得

\[f_i-f_{i+1}=f_{i-1}-f_i+\frac{s-1}{s-i}
\]
\[f_{i+1}=2f_i-f_{i-1}-\frac{s-1}{s-i}
\]

考虑边界,当 \(i=1\) 时不存在 \(f_0\),代入上式得

\[f_2=2f_1-1
\]

显然 \(f_s=0\)。(我为啥这么显然的事想了半天

那么

\[f_1=f_1-f_s=\sum\limits_{i=2}^s f_i-f_{i-1}
\]
\[=(s-1)(f_1-f_2)+(s-2)(s-1)
\]

将 \(f_2=2f_1-1\) 代入,得

\[f_1=\frac{(s-1)^2}{s}
\]

至此,已知 \(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=i+1}^n \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 题解合集的更多相关文章

  1. 【bzoj4832】[Lydsy2017年4月月赛]抵制克苏恩 概率期望dp

    题目描述 你分别有a.b.c个血量为1.2.3的奴隶主,假设英雄血量无限,问:如果对面下出一个K点攻击力的克苏恩,你的英雄期望会受到到多少伤害. 输入 输入包含多局游戏. 第一行包含一个整数 T (T ...

  2. 【loj6191】「美团 CodeM 复赛」配对游戏 概率期望dp

    题目描述 n次向一个栈中加入0或1中随机1个,如果一次加入0时栈顶元素为1,则将这两个元素弹栈.问最终栈中元素个数的期望是多少. 输入 一行一个正整数 n . 输出 一行一个实数,表示期望剩下的人数, ...

  3. 【BZOJ-1419】Red is good 概率期望DP

    1419: Red is good Time Limit: 10 Sec  Memory Limit: 64 MBSubmit: 660  Solved: 257[Submit][Status][Di ...

  4. Codeforces - 1264C - Beautiful Mirrors with queries - 概率期望dp

    一道挺难的概率期望dp,花了很长时间才学会div2的E怎么做,但这道题是另一种设法. https://codeforces.com/contest/1264/problem/C 要设为 \(dp_i\ ...

  5. Codeforces 908 D.New Year and Arbitrary Arrangement (概率&期望DP)

    题目链接:New Year and Arbitrary Arrangement 题意: 有一个ab字符串,初始为空. 用Pa/(Pa+Pb)的概率在末尾添加字母a,有 Pb/(Pa+Pb)的概率在末尾 ...

  6. 概率期望dp

    对于概率dp,我一直都弄得不是特别明白,虽然以前也有为了考试去突击过,但是终究还是掌握得不是很好,所以决定再去学习一遍,把重要的东西记录下来. 1.hdu4405 Description 在一个 \( ...

  7. [BZOJ4832]抵制克苏恩(概率期望DP)

    方法一:倒推,最常规的期望DP.f[i][a][b][c]表示还要再攻击k次,目前三种随从个数分别为a,b,c的期望攻击英雄次数,直接转移即可. #include<cstdio> #inc ...

  8. LightOJ 1030 Discovering Gold (概率/期望DP)

    题目链接:LightOJ - 1030 Description You are in a cave, a long cave! The cave can be represented by a \(1 ...

  9. 华南理工大学“三七互娱杯”程序设计竞赛 HRY and codefire(概率期望DP)

    https://ac.nowcoder.com/acm/contest/874/A 题目:有两个账号 , 一开始都为0级 , 求任意一个账号升级到N的期望 要求:如果当前账号嬴了 , 就继续沿用当前的 ...

  10. [NOIP2016]换教室(概率期望$DP$)

    其实吧我老早就把这题切了--因为说实话,这道题确实不难啊--李云龙:比他娘的状压DP简单多了 今天我翻以前在Luogu上写的题解时,突然发现放错代码了,然后被一堆人\(hack\)--蓝瘦啊\(ORZ ...

随机推荐

  1. AR增强现实 之Metaio For Unity 开发 之HelloWorld

    开发工具 unity 4.6     MetaioSDK 6.1       代码编辑器 VS 2013 上图不会配置的请自行百度 1.创建项目并且导入Metaio SDk 开发包 2.导入后目录图 ...

  2. IoTOS v1.0.0 开源 高效 实用 | 免费商用

    IoTOS v1.0.0 一款高效实用 IoTCard 管理 & 运营系统. IoTOS 目前取名范围过大,其主要用于IoTCard 管理业务以高效.健壮.灵活设计 SaaS.多语言.机器人推 ...

  3. 【2020GET】即构科技蒋宁波:教育行业客户需求的核心是什么?

    11月24日,由即构科技主办的2020GET大会教育科技分论坛在北京成功召开,来自叮咚课堂.小冰.360OS.蕃茄田艺术.即构科技的6位资深教育/科技大咖,在论坛上进行深度分享. 以下为即构科技联合创 ...

  4. 平时容易忽视的地方之一:java在抽取方法时,什么时候该用void

    当一个类中多个方法有相同编码,或该部分编码可以作为一个整体,适合抽取出一个方法时,要注意这个抽取的方法的返回值,什么时候可以用void,什么时候不能用void? 先看代码: import lombok ...

  5. 行行AI人才直播第11期:墨尔本大学数据科学高级讲师-宫明明《机器学习:从统计到因果,人工智能的发展之路》

    行行AI人才是博客园和顺顺智慧共同运营的AI行业人才全生命周期服务平台. 马克斯·普朗克智能系统中心主任曾在国际数学家大会进行了题为 From Statistical to Causal Learni ...

  6. nrm工具

    nrm 工具 nrm(npm registry manager)是npm镜像源管理工具.可快速帮助查看.切换.管理npm镜像源. 安装 npm install -g nrm 查看 nrm ls 切换 ...

  7. SQL Server 配置允许远程连接

    前言 需要别人远程你的数据库,首先需要的是在一个局域网内,或者连接的是同一个路由器,接下来就是具体步骤: 1.首先是要检查SQLServer数据库服务器中是否允许远程链接.其具体操作为: 1. 打开数 ...

  8. altas2.1.0编译、安装、集成CDH6.3.2

    目录 altas2.1.0编译.安装.集成CDH6.3.2 一: Atlas源码下载 二: Atlas源码编译 1.修改altas项目主pom文件,即需要编译的CDH6.3.2对应版本信息 2.Atl ...

  9. (转)[Android测试] Android Studio+Appium+Java+Windows 自动化测试之二:Appium环境安装搭建

    一.需要下载安装的东西 1. 文件下载 网上也有挺多安装教程的,这里我提供我的安装方法.Win10 64位.一些文件我在后面打包. 2016.9.12号本人安装记录. SDK: 由于我是搞Androi ...

  10. avue-crud属性配置项参数笔记分享

    Avue 是一个基于Element-plus低代码前端框架,它使用JSON 配置来生成页面,可以减少页面开发工作量,极大提升效率: 虽然Avue官网上面都有这些配置说明,但是如果刚开始接触不熟悉框架的 ...