[学习笔记][期望DP题单]概率,期望DP

〇、前言

做过很多期望的题了,但是一直没有系统地学习过期望,这几天终于有时间攻坚这个重要但是对我而言难得一匹的问题了......实际上我 DP 也菜得一匹

壹、知识桥

传送门 to OI-wiki

一般我们使用 \(P(X)\) 表示 \(X\) 发生的概率,\(E(X)\) 表示 \(X\) 发生的期望。

我们有两者的关系:

\[E(X)=\sum[P(X=i)\times \text{value}_i] \]

通俗易懂的讲就是 每种情况出现的概率×这种情况的权值 。

一、期望的线性性

对于任意的 \(X,Y\),有

\[E(X+Y)=E(X)+E(Y) \]

由上也可以推出

\[E(aX+bY)=aE(x)+bE(Y) \\ E(\sum_ia_iX_i)=\sum_{i}E(a_iX_i) \]

特别地,当随机变量 \(X,Y\) 独立时,有

\[E(XY)=E(X)E(X) \]

二、条件概率

对于概率函数 \(P()\),有

\[P(A|B)={P(AB)\over P(B)} \]

其中,\(A|B\) 表示在 \(B\) 发生的情况下,\(A\) 发生的概率,特别地,如果 \(A,B\) 没有关系,那么有 \(P(A|B)=P(A)\).

可以从另外一个角度去理解。

\(AB\) 都发生的概率就是 \(B\) 发生的概率乘以 \(B\) 发生的情况下 \(A\) 发生的概率,即 \(P(A|B)\times P(B)=P(AB)\),移项可得 \(P(A|B)={P(AB)\over P(B)}\).

  • 贝叶斯公式

就是下面这个等式:

\[P(A_i|H)={P(A_i)P(H|A_i)\over \sum P(A_j)P(H|A_j)} \]

实际上比较好理解,用通俗的话说明一下:

在已知 \(H\) 发生的情况下,是 \(A_i\) 的可能性 \(P(A_i|H)\),其实就是 \(A_i\) 造成 \(H\) 发生的概率 \(P(H|A_i)P(A_i)\)\(H\) 发生的总概率中的占比,也就是 \({P(A_i)P(H|A_i)\over \sum P(A_j)P(H|A_j)}\).

也可以看一看这里

\(\text{Tips.}\) 由于我们有了 \(P(A|B)={P(AB)\over P(B)}\) 这个东西了,由 \(E,P\) 的期望,我们亦有

\[E(A|B)={E(AB)\over P(B)} \]

三、方差

求一个序列的方差的期望,记为 \(Var(X)\),那么我们有

\[\begin{aligned} Var(X)&={1\over n}\sum_{i=1}^n(x_i-\overline x)^2 \\ &={\sum_{i=1}^nx_i^2\over n}+{\sum_{i=1}^n\overline x^2\over n}-2\overline x{\sum_{i=1}^nx_i\over n} \\ &=E(X^2)+\overline x^2-2\overline x^2 \\ &=E(X^2)-\overline x^2 \\ &=E(X^2)-E^2(X) \end{aligned} \]

于是,我们得到了

\[Var(X)=E(X^2)-E^2(X) \]

贰、典例营

考虑一个点会对答案作出贡献时需要满足的条件是什么 —— 显然,它在它的祖先之前被选中,这个情景发生的概率是多少呢?显然 \(1\over \text{depth}_i\),那么最后的答案其实就是

\[\sum_{i=1}^n{1\over \text{depth}_i} \]

考虑删除 \(u\) 的时候,有哪些点对他产生了贡献。

对其有贡献的点 \(v\),一定有 \(u-v\) 路径上之前还没有点被删掉过,即 \(u\)\(u-v\) 上第一个被删掉的点,设 \(\text{dis}(u,v)\)\(u\)\(v\) 路径上点的个数,包含端点,那么这个概率是 \(1\over \text{dis}(u,v)\),最后的答案统计,我们就只需要枚举一个被删除的点,然后统计它的期望价值即可,用公式写出来即

\[Ans=\sum_{u=1}^n\sum_{v=1}^n{1\over \text{dis}(u,v)} \]

这个东东好像有点难做,我们可以考虑统计每种路径的长度,先算出某种长度出现的概率,考虑到路径长度就是两条子路径长度拼起来,这是一个类似卷积的结构,可以使用淀粉质 + \(\tt FFT\) 做,时间复杂度 \(\mathcal O(n\log^2 n)\).

代码看这里

由贝叶斯公式,我们不难发现一个点的概率只和在它前面的第一个已知结局与在它后面的第一个已知结局有关,也就是说,某个时刻我们已知的 \(T_1,T_2,T_3...T_k\) 将长度为 \(n\) 的游戏结果序列分成了\(k+1\) 段,每一段都是独立的,最终答案就是这些区间的期望贡献之和。

记事件 \(X\) 为小 R 在第 \(x\) 局获胜的概率,事件 \(L,R\) 为第 \(x\) 局左边第一个第 \(l\) 局、右边第一个第 \(r\) 局已知事件,那么我们求的就是 \(P(X|L,R)\),对这个进行变形

\[\begin{align} P(X|L,R)&={P(L,R|X)P(X)\over P(L,R)} \tag{1} \\ &={P(L|X)P(R|X)P(X)\over P(L,R)} \tag{2} \\ &={P(L|X)P(R|X)P(X)\over P(R|L)P(L)} \tag{3} \\ &={P(R|X)\over P(R|L)}\times {P(L|X)P(X)\over P(L)} \tag{4} \\ &={P(R|X)\over P(R|L)}\times P(X|L) \tag{5} \\ &={P(R|X)P(X|L)\over P(R|L)} \end{align} \]

对于 \((1)\),使用了贝叶斯公式进行展开,对于 \((2)\),使用 \(P(B|A)={P(AB)\over P(A)}\) 这个等式,对于 \((5)\),使用贝叶斯公式进行合并。

而我们最后要求的,就是

\[\sum_{l<x<r}{P(R|X)P(X|L)\over P(R|L)}={\sum_{l<x<r}{P(R|X)P(X|L)}\over P(R|L)} \]

不难发现分母是一个定值,我们可以直接算,对于分子,

  • 矩形覆盖

给定一个大小为 \(n\times m\) 的矩形,某一些格子上有物品,共有 \(k\) 个物品,现在等概率选一个子矩形,求子矩形内物品个数的方差。

\(n,m\le 10^9,k\le 10^5\).

由方差的等价公式,我们只需要分别算出 \(E(X^2)\)\(E(X)\) 即可。

先考虑 \(E(X)\),于此的含义就是一个点的期望贡献,我们只需要考虑这个点上的物品对于哪些矩形提供贡献,比较显然,对于一个点 \(\lang x,y\rang\),它对于 \(xy\times (n-x+1)(m-y+1)\) 那么多矩形提供贡献(实际上就是左上方的矩阵中选一个点匹配右下方的矩阵)

再考虑 \(E(X^2)\),它于此的含义就是两个点同时对矩阵提供贡献,这个时候我们要对于点对考虑。

考虑分类讨论一下它们是左上右下的关系还是右上左下的关系,离散化 + \(\tt BIT\) 分别计算一下即可。

先考虑 \(E(X)\),即对于一个点,第一次到它的方案数量的期望,定义 \(f_{i,j,k}\) 表示第 \(i\)

posted @ 2021-02-22 18:45  Arextre  阅读(421)  评论(0编辑  收藏  举报