前言
随机变量 X 的期望定义如下:
E[X]=x∑xPr(X=x)
在事件 Y=y 发生的情况下,条件期望的定义:
E[X∣Y=y]=x∑xPr(X=x∣Y=y)
注意,此时 E[X∣Y=y] 是 y 的函数,不再是一个常数。
根据全概率公式,我们可以推出全期望公式:
E[X]=x∑xPr(X=x)=x∑y∑xPr(X=x∣Y=y)Pr(Y=y)=y∑Pr(Y=y)(x∑xPr(X=x∣Y=y))=i∑Pr(Y=y)E[X∣Y=y]=E[E[X∣Y]]
对若干步递推中的事件划分出合适的随机变量,可以帮助我们更方便地推导期望相关公式。
P1654
记随机变量 Xi 为 i 轮后的得分,Ti 表示 i 轮后末尾连续段的长度。
那么就可以得到:
E[Xi−Xi−1∣Ti−1]=(1−pi)×0+pi[(Ti−1+1)3−Ti−13]=3piTi−12+3piTi−1+pi
紧接着,我们给出 Ti2 与 Ti 的期望递推公式:
E[Ti∣Ti−1]E[Ti2∣Ti−1]=(1−pi)×0+pi(Ti−1+1)=piTi−1+pi=(1−pi)×0+pi(Ti−1+1)2=piTi−12+2piTi−1+pi
核心的思想是定义合适的随机变量,使得能够根据描述写出条件期望的式子。
复杂度 O(n)。
[CCPC 2023 Shenzhen] Rooted Tree
记执行 i 次操作后的树为 Ti,并且定义节点深度之和 Xi=f(Ti),叶子深度之和 Yi=g(Ti),并且叶子数量 Li=1+(M−1)i。
考虑执行一次操作后 Xi 的变化:
E[Xi−Xi−1∣Ti−1]=u∈leaf(Ti−1)∑Li−1(du+1)M=Li−1MYi−1+M
同时,我们也需要递推 Yi 的变化:
E[Yi−Yi−1∣Ti−1]=u∈leaf(Ti−1)∑Li−1(du+1)M−du=Li−1(M−1)Yi−1+M
整理可以得到:
1+(M−1)iE[Yi]=1+(M−1)(i−1)E[Yi−1]+1+M(i−1)M
分别维护分子分母即可做到 O(1) 递推出所有 E[Yi],也就能推出 E[Xi]。
复杂度 O(K+logP)。
[THUCAMP 2026 Day3] To Make You Cry
给定 n≤3×105 个节点的树,每条边 i 有相互独立的 xi% 的概率不被删除,每个点 i 有权值 wi(1≤wi≤10),求最大权独立集的期望,对 109+7 取模。
考虑不删边的时候怎么做。定义 dpu,0 表示不选 u,dpu,1 表示选 u,那么转移自然是:
dpu,0dpu,1=v∈son(u)∑max(dpv,0,dpv,1)=wu+v∈son(u)∑dpv,0
如果 (u,v) 这条边被删掉,那么 dpu,1 也可以被 max(dpv,0,dpv,1) 进行转移,于是题意目前就是 E[max(dp1,0,dp1,1)]。
一个众所周知的事实是,一般来讲 E[max(X,Y)]=max(E[X],E[Y]),所以我们需要把 max 设计到期望里面去。
直接根据转移方程求出 E[dpu,0] 与 E[dpu,1] 即可,主要的问题是如何求出 E[max(dpu,0,dpu,1)]。
考虑到这里我们需要以某种方式比较 dpu,0 和 dpu,1,所以给它做个差:
dpu,1−dpu,0=wu−v∈son(u)∑max(0,dpv,1−dpv,0)
显然可以看出 dpu,1−dpu,0≤wu≤10,并且小于 0 的值我们是不关心的,所以记 fu,j 表示 max(0,dpu,1−dpu,0)=j 的概率。
初始 fu,wu=1,枚举每个 (u,v),更新:
∀k,fu,max(0,j−k)fu,j←fv,k×fu,j×100x(u,v)←fu,j×(1−100x(u,v))
即枚举不删和删两种情况,如果删边则 max(0,dpu,1−dpu,0) 不变化,如果不删则需要枚举子节点 v 的 max(0,dpv,1−dpv,0) 的值。
那么就有:
E[max(dpu,0,dpu,1)]=E[max(0,dpu,1−dpu,0)+dpu,0]=E[max(0,dpu,1−dpu,0)]+E[dpu,0]=j=0∑10jfu,j+E[dpu,0]
复杂度 O(n(maxw)2)。