概率期望
概率期望
我是哪里来的信心在考前学完概率期望
CSP 前不会在往后推了,CSP 以后再说罢。
应该没有人像我一样最后统一写题解了吧。——12.29补完
基本点:
- \(E(A+B)=E(A)+E(B)\) 不需要 \(A,B\) 互相独立。
- \(E(AB)=E(A)+E(B)\) 需要 \(A,B\) 互相独立。
- \(E(A)=P(A)*A\)
- \(P(A|B)*P(B)=P(B|A)*P(A)=P(AB)\)
其他做题的小点:
-
\(E(X^2)\ne (E(X))^2\)
因为 \(X\) 和 \(X\) 不相互独立。
解决方法也很简单,直接单独递推维护 \(E^2,E\) 即可。
-
对于有明确起点和终点的,一般直接 \(dp\) 推,一般倒推优于正推。
-
对于没有起点和终点的序列,可以考虑每个点的贡献期望求和。
-
有的策略就是期望 \(\ge 0\)。
例题:
-
算是典的有终点:
考虑倒推。
\(dp_{u}\) 表示从 \(i\) 到终点期望。
显然 \(dp_u=\sum\limits_{u\to v} \frac{dp_v}{k}\)(\(k\) 表示 \(u\) 的子节点个数)
-
看似没有终点,其实因为猫每次一定向鼠靠近,所以有终点。
记忆化。
定义 \(dp_{i,j}\) 表示猫在 \(i\) 鼠在 \(j\) 期望。
预处理 \(dis_{i,j}\) 表示 \(i\to j\) 长度。
显然 \(dis_{i,j}\le 2\) 时 \(dp_{i,j}=1\) ,其他 \(dp_{i,j}=\sum\limits_{i\to x} \frac{dp_{x,y}}{k}\)(\(y\) 是 \(j\) 决策后的点)
-
典。递推。
考虑有 \(l\) 连续成功,\(l+1\) 成功贡献 \((l+1)^3-l^3=3l^2+3l+1\)
注意要单独维护 \(E(l^2)\)
\[(l+1)^2=l^2+2l+1\Rightarrow E((l+1)^2)=E(l^2)+2E(l)+1 \] -
DP。
设 \(dp_{i,j}\) 表示还有 \(i\) 张红,\(j\) 张黑。
这里的最优策略就是和 \(0\) 取
max
。\[dp_{i,j}=P(red)(\max(dp_{i-1,j},0)+1)+P(black)(\max(dp_{i,j-1},0)-1) \]最后别忘再和 \(0\) 取一次
max
。 -
简单 DP。
设 \(dp_{i,j,k}\) 表示进行到第 \(i\) 轮,胜利 \(j\) 次,背包容量 \(k\) 的概率。
考虑 \(i\) 次是否成功简单转移。
-
经典考虑每个贡献。
一看好像挺复杂,其实很简单。
因为期望的相加不要求独立,考虑第 \(i\) 个题做对的可能性 \(\frac{\min(a_i,a_{i-1})}{a_{i}a_{i-1}}\)(\(a_i\) 表示第 \(i\) 个题的答案数)。
相加即可。
-
显然:
\[\sum\limits_{i=1}^n\sum\limits_{j=1}^n\sum\limits_{l=1}^{j}lP(j|L=l) \]\(i\) 枚举 \(a_i\), \(j\) 枚举位置,\(l\) 枚举长度,\(P(j|L=l)\) 表示在 \(j\) 时长度 \(=l\) 概率。
然后有一个巧妙的转换:
\[\sum\limits_{i=1}^n\sum\limits_{j=1}^n\sum\limits_{l=1}^{j}P(j|L\ge l) \]发现转换以后位置其实就无关了,也就是:
\[\forall j\in[l,n],P(j|L\ge l)=P(n|L\ge l) \]所以直接将 \(j\) 去掉。
\[\sum\limits_{i=1}^n\sum\limits_{j=1}^n\sum\limits_{l=1}^{j}P(L\ge l)=\sum\limits_{i=1}^n\sum\limits_{l=1}^{n}\sum\limits_{j=l}^{n}P(L\ge l)=\sum\limits_{i=1}^n\sum\limits_{l=1}^{n}P(L\ge l)(n-l+1) \]接下来直接推式子,\(c_i\) 表示 \(a\) 中 \(\ge a_i\) 的个数:
\[\begin{aligned} \sum\limits_{i=1}^n\sum\limits_{l=1}^{n}P(L\ge l)(n-l+1) & =\sum\limits_{i=1}^n\sum\limits_{l=1}^{n}\frac{A_{n-c_i}^{l-1} (n-l)!(n-l+1)}{n!}\\ & =\sum\limits_{i=1}^n\frac{1}{n!}\sum\limits_{l=0}^{n-1}A_{n-c_i}^l (n-l)!\\ & =\sum\limits_{i=1}^n\frac{1}{n!}\sum\limits_{l=0}^{n-1}\frac{(n-c_i)!(n-l)!}{(n-c_i-l)!}\\ & =\sum\limits_{i=1}^n\frac{(n-c_i)!c_i!}{n!}\sum\limits_{l=0}^{n-1}\frac{(n-l)!}{(n-c_i-l)!c_i!}\\ & =\sum\limits_{i=1}^n\frac{(n-c_i)!c_i!}{n!}\sum\limits_{l=0}^{n-1}\binom{n-l}{c_i}\\ & =\sum\limits_{i=1}^n\frac{(n-c_i)!c_i!}{n!}\sum\limits_{l=1}^{n}\binom{l}{c_i}\\ & =\sum\limits_{i=1}^n\frac{(n-c_i)!c_i!}{n!}\sum\limits_{l=0}^{n}\binom{l}{c_i}\\ & =\sum\limits_{i=1}^n\frac{(n-c_i)!c_i!}{n!}\binom{n+1}{c_i+1}\\ & =\sum\limits_{i=1}^n\frac{n+1}{c_i+1}\\ \end{aligned}\]你说的对,但是其实可以直接推式子。
其他的以后慢慢补吧。
想不到吧,有生之年竟然补了,哈哈哈。
考虑求每个点不被覆盖的概率,显然求。
最后容斥即可。
约瑟夫常用套路。
发现不好表示具体是谁还活着。
可以设 \(dp_{i,j}\) 表示第 \(i\) 轮,当 \(1\) 坐庄时,第 \(j\) 人的胜率。
转移时可以直接推出具体是谁。
贪心,求每个边的走过的次数期望。
显然贪心,次数越多填的值越小。
列出转移,发现有后效行,直接高斯消元即可。
这个是上一个的加强。
列出转移方程,发现带异或,不能直接消元。
考虑每位都无关,每位拆开分别算即可。
列出方程,发现不止和子树相关,还和父亲相关。
考虑换根,先只考虑子树,在加上父亲即可。
和上一题类似,但是多测。
求出任意节点到其父亲和儿子的期望步数,求前缀和。
最后通过 \(lca\) 回答即可。
首先我们要解决最优策略。
发现一个开关一定不能管辖到比他大的灯,所以从大到小按一定最优。
考虑随机的情况。
发现按同一个开关两次会抵消,而且不存在几种方案拼接能按成更大的按钮,所以方案是唯一的,并且按一次最多让需要的次数加一或减一。
求从需要 \(i\) 到 \(i-1\) 的期望次数即可。
先考虑熄灭红灯的,绿灯类似。
最后一次一定是红灯,剩下的可以枚举绿灯全排。
总共的:
神题,不好想。
40 pts 可以直接 ACAM 上跑 DP
考虑为什么概率会不一样。
一个人什么时候会赢:
\(S\) 是一个没有人赢的串,\(A_i\) 表示第 \(i\) 个人赢得串。
看似是 \(S+A_i\) ,但其实会有 \(S\) 后缀和 \(A_i\) 前缀是另一个人的赢串,所以需要减去这个概率。
然后就可以列方程了。
设 \(P\) 表示一个没有人赢的串的出现概率,\(P_i\) 表示 \(i\) 赢得概率,\(pre_l\) 为长度为 \(l\) 的后缀(\(A\) 串),\(suf_l\) 为长度为 \(l\) 的前缀(\(S\) 串)。
有 $$f_i + \sum_{j = 1}^{n}f_j\sum_{k = 1}^{m}[pre_{k} = suf_{k}]\dfrac{1}{2^{m - k}} = \dfrac{f_0}{2^{m}}$$
发现少一个,加上 \(\sum f_i=1\) 就可以了。
本文来自博客园,作者:xrlong,转载请注明原文链接:https://www.cnblogs.com/xrlong/articles/17763077.html