概率和期望及训练18题题解

一些要点

1.据cql所说,概率DP一般正常跑,期望DP一般倒着跑,能从一个状态按概率地转移到多个状态的,一般被称作真期望DP
2.当你搞不清这个转移方程里面某一项加不加括号时,考虑使用树形图来分析概率及其对应期望。
3.期望有可加性(线性性),没有可乘性
4.一个组合数学的式子:\(\sum_{i = 1}^{n}C_{n - i + 1}^{K + 1} = \sum_{i = 1}^{n}C_{i}^{K + 1}(列出每一项可知) = C_{n + 1}^{K + 2} - C_{1}^{K + 1}(杨辉三角递推式)\)

A.绿豆蛙的归宿

发现是真期望DP,考虑逆推,因为最终状态确定。设\(f_u\)为目前走到u,走到n的期望步数,转移的话是比较容易的:\(\large f_u = \frac{\sum\limits_{(u,v) \in E}^{} (f_v + 1)}{out[u]}\)

B.OSU!

我们发现,需要考虑的实际上是每一个位置会造成多少贡献。设在i前面已有长度为X的连续1,i若是1则多出\((X + 1) ^ 3 - X^3 = 3X^2 + 3X + 1\)的贡献。所以我们考虑设\({f_1}_i\)为到i连续1长度的期望,\({f_2}_i\)为到i连续1长度平方的期望,\(ans_i\)为到i分数期望。注意我对\(f_1\)\(f_2\)语言表述的顺序,因为\(E^2(x) \neq E(x^2)\),这里维护的是后者。然后方程如下:
\(\large {f_1}_i = ({f_1}_{i-1} + 1) \times p_i\)
\(\large {f_2}_i = ({f_2}_{i - 1} + 2{f_1}_{i - 1} + 1) \times p_i\)
\(\large ans_i = ans_{i - 1} + (3{f_2}_{i - 1} + 3{f_1}_{i - 1} + 1) \times p_i\)
观察一下这一组式子,想一想要点第二条。

C.单选错位

发现总期望就是第i题和第(i+1)题正确答案相同的概率之和,若i == n则就是n和1的答案相同概率。然后推一下概率的式子。本题使人对期望的定义和线性性认识更深刻。

D.[bzoj1419]Red is good

发现本题可以从一个状态转移到两种状态,因此考虑逆推期望。
\(f_{i,j}\)为已经拿了i张红j张黑的期望收益。转移是容易的,我们需要注意,如果算出来期望是负的,就将其归零,因为可以在中途不取。但是你不能在两种转移里面去掉负的留下正的,转移是没法挑的。

E.[bzoj2720][Violet 5]列队春游

这是一道很有思维含量的题。
我们考虑进行一些经典转化
直接列式子算期望是这样的:\(ans_i = \sum\limits_{j=1}^{n}j \times P(L == j)\),其中L是视野长度。拆开,就是n个\(P(L == 1)\)加上(n-1)个\(P(L == 2)\)一直加到一个\(P(L == n)\);再合并,就是\(\sum\limits_{j=1}^{n} P(L \ge j)\)
考虑算概率,就是合法方案数除以总方案数。只提取有用的一部分来计数。 设有K个人身高不小于i,不含i自己。
总:这K+1个人乱放,即\(A_{n}^{K + 1}\)
合法:这K个人不能放在i前面的j-1个位置里面,只能放在剩下的n-j个里,又因为i可以放在\([j,n]\)这n-j+1个位置里,所以是\((n-j+1) \times A_{n-j}^{K}\)
其实现在已经可以做了,但是为锻炼推式子能力,有:
\(\large \ \ \ \sum\limits_{j=1}^{n} \frac{(n - j + 1) \times A_{n - j}^{K}}{A_{n}^{K + 1}}\)
然后对着推式子,首先把A化开,然后提出分母,再然后配凑化为组合数,最后推出来$\frac{n+1}{K+2} $。

F.[bzoj2969]矩形粉刷

这个题的式子比较麻烦,要计算每个格子被涂到的概率,再按涂色轮数取并集。考虑用计算机找规律。画一个6*8的格子,取第三行第四列找规律,就是左上右上左下右下再容斥,考虑写一个\(n^4\)算出答案再倒推式子。

G.[Tyvj1952] WJMZBMR打osu! / Easy

就是B题简单版,不讲。

H.守卫者的挑战

简单题。发现加一个残片事实上就是给背包空间-1,而且最多有n个残片,所以直接设\(f_{i,j}\)为走到i,背包空间为j的概率,转移是容易的。背包空间转移时上界是n。

I.[NOI2005]聪聪和可可

本题是一个无向图,不好直接转移,考虑记忆化搜索。状态显然是\(f_{i,j}\)为聪聪在i可可在j期望还要走几步才能追到,预处理出来聪聪在i可可在j,聪聪会走到的点编号,然后转移时走两次即可。

J.[JLOI2013]卡牌游戏

这个题的核心思想是抽象掉人的编号。首先考虑,只有一个人,胜率肯定是1。
考虑设\(f_{i,j}\)为这个环上面有i个人,第j个人的胜率是多少。
分析一下i=2的情形。
枚举每一张卡片,有的是偶数,会干掉对手;有的是奇数,会干掉自己。可以发现:
\(\large f_{2,1} = P(卡片是偶数) \times f_{1,1}\)
推广一下,我们考虑把下一轮的庄家编号成1,然后可以得到一般的转移方程:
\(f_{i, p} += f_{i - 1, j} / m\),p的初始值是这一轮会寄的人的编号,然后j从1开始枚举,每次p++,进行一一对应。

K.[NOIP 2016 提高组]换教室

状态显然是\(f_{i,j,0/1}\)为上了i节课,用了j次换教室机会,第i节换/不换教室的期望路程。
分9种情况:
1.不申请换,上次也不申请换。 不用考虑\(p\)
2.不申请换,上次申请换并成功。 乘上\(p_{i-1}\)
3.不申请换,上次申请换未成功。 乘上\(1-p_{i-1}\)
4.申请换成功,上次不申请换。 乘上\(p_i\)
5.申请换成功,上次申请换并成功。 乘上\(p_i \times p_{i-1}\)
6.申请换成功,上次申请换未成功。 乘上\(p_i \times (i - p_{i-1})\)
7.申请换未成功,上次不申请换。 乘上\(1 - p_i\)
8.申请换未成功,上次申请换并成功。乘上\((1 - p_i) \times p_{i-1}\)
9.申请换未成功,上次申请换未成功。乘上\((1 - p_i) \times (1 - p_{i-1})\)
注意:一定不要把换教室是否成功设到状态里。

L.[SCOI2008]奖励关

本题应当逆推。原因是到达每一种终止状态的概率不同。
顺推也可以进行,那需要维护到达每个状态的概率。
状态显然,\(f_{i,sta}\)含义是目前走到i关,\([1,i-1]\)获取的状态是sta,走完\([i,n]\)所需最小期望。所以最终输出\(f_{1,0}\)

M.[SHOI2014]概率充电器

考虑本题核心:一个点被点亮概率,等于它自己亮的概率、它的儿子点亮它的概率和其他节点点亮它的概率的并集。

自己和儿子点亮的概率显然。
然后画出一个树,发现其他点点亮概率\(g_u\)就是\(g_{fa}\)和fa的所有其他子节点\(f_v \times w(u,v)\)的概率的并集再乘上边概率。考虑把所有的这些子节点概率的(1-p)乘起来,再除掉自己的得到其他的。如果这个乘积等于0,记录一个遍历的次数。如果遍历次数只有一次,那么就再跑一遍。如果大于一次,就直接认定上面的点被点亮概率为1即可。

N.树

树上随机游走问题。
我们考虑设\(f_i\)为从i游走到fa的期望步数,\(g_i\)为从fa游走到i的期望步数。
向父亲游走分这两种情况:直接走到、走到了子节点,需要先走上来再走到父亲。记得要乘游走概率\(\frac{1}{d_i}\)
化简出来是\(\large f_u = d_u + \sum\limits_{v \in son_u} f_v\)
从父亲走过来分三种:直接走到,走到父亲的父亲,走到兄弟节点。
化简、换元得到\(\large g_u = g_{fa} + f_{fa} - f_u\)

然后期望可加可减,我们在根链上面做前缀和和差分即可。

O.[HNOI2013] 游走

这个题需要一些转化。首先设\(g_i\)为第i条边期望被经过几次。然后设\(f_u\)为节点u期望被经过几次。
转化得\(g_i = \frac{f_u}{d_u} + \frac{f_v}{d_v}\),其中u和v是边的两个端点。
点被期望经过的次数是容易求解的,就是与它相邻的点走过来的概率乘该点被经过次数期望。

发现应该整理成方程,然后进行高斯消元,因为图上是有环的。
注意方程里面1号点被经过的次数应该+1,然后点n被期望经过0次,因为无从转移。所以有n-1组方程。

P.[HNOI2011]XOR和路径

首先可以按位处理。
然后设\(f_i\)为在当前位上,从i走到n,异或和为1的概率,其实也就是异或和的期望。
所以就是它可以从与它相连的点转移过来,边权是0的乘上异或和为1的,边权是1的乘上异或和为0的,然后整理方程,高斯消元即可。

posted @ 2025-05-06 09:59  The_Wandering_Earth  阅读(46)  评论(0)    收藏  举报
/