期望特训

定义

\(\sum p_{i}x_{i}\)

性质

  • \(C\) 是常数,则有 \(\mathbb{ E } ( C ) = C\)
  • \(X\) 是随机变量,\(C\) 是常数,则有 \(\mathbb{ E } ( C X ) = C \mathbb{ E } ( X )\)
  • \(X, Y\) 是随机变量,则有 \(\mathbb{ E } ( X + Y ) = \mathbb{ E } ( X ) + \mathbb{ E } ( Y )\)
  • \(X, Y\) 是两独立随机变量,则有 \(\mathbb{ E } ( X Y ) = \mathbb{ E } ( X ) \mathbb{ E } ( Y )\)

上面的第三条性质又叫作期望的线性性,是极为常用的结论。

期望的线性性好难啊,根本不会。如果两个是独立的变量,好理解。如果不独立,比如第一个依赖于第二个。比如 \(E(x^{2}+x)(x\in[1,3])\) 那么就是 \(E(X^{2})+E(x)\) 想想为什么。从定义考虑 \(\sum p_{i}*(x^{2}+x)=\sum p_{i}*x^{2}+\sum p_{i}*x\)
可以发现,如果两个定义域一样,每个取到的概率一样,那么就可以。也就是相当于随机变量了。这个相当于覆盖了所有情况,感觉是的。过一会再理解吧。

P3802

根据期望的线性性考虑对每一个位置算其触发超级魔法的期望。
根据这个来理解期望的线性性。原本的式子,对于每一种可能的排列 \(\sum p_{i}*x_{i}\)。那么我们可以算贡献,可以这样想,分开来算的贡献是不重不漏的。
\(N=a_{1}+a_{2}+...+a_{n}\)
那么第一个位置就是 \(\sum_{全排列} \frac{a_{1}}{N}*\frac{a_{2}}{N-1}*...*\frac{a_{7}}{N-6}\)
发现是 \(7!* \frac{a_{1}a_{2}...a_{n}}{N(N-1)...(N-6)}\)
然后第二个就位置 \(\sum_{p=1}^{7} \frac{a_{p}}{N}*7!* \frac{a_{p}-1}{a_{p}}\frac{a_{1}a_{2}...a_{n}}{(N-1)...(N-6)(N-7)}\)
调换位置 \(\sum_{p=1}^{7} \frac{a_{p}-1}{N-7}*7!* \frac{a_{1}a_{2}...a_{n}}{N(N-1)...(N-6)}\)
后面这一坨提出来,发现是这个东西 \(7!* \frac{a_{1}a_{2}...a_{n}}{N(N-1)...(N-6)}\)
那么拓展到更多项呢?
\(\sum_{p_{1}=1}^{7} \sum_{p_{2}=1}^{7}\)
感性理解,通过分母的替换还是这个东西。那么直接加起来即可。
所以 \(ans=(n-6)*7!* \frac{a_{1}a_{2}...a_{n}}{N(N-1)...(N-6)}\)

P4550

因为每张卡牌是一样的。考虑设 \(f_{i}\) 为已经取 \(i\) 张取完剩下的期望步数。这样设的原因李煜东解释了:期望 dp 要倒推的原因通常是:初态(起点)唯一,目标状态(终点)不唯一。例如:机器人从第一行某个格子开始,随机往左右下三个方向走,走到最后一行的某个格子时,期望路径长度。再比如 SCOI2008 奖励关 这题,起点唯一,但终点有一些状态不可达的问题。如果正着写,按照期望的定义,还需要求出到每个终点的概率,再加权求和。而倒着写因为起点唯一,概率必为1,就不用再存一个概率的 dp 数组了,写起来更简洁一些。如果起点终点都唯一(例如 绿豆蛙的归宿 这题,保证终点唯一且可达;NOIP2016 换教室,终点对于期望来说实际上是唯一的,最后是要求 min 而不是按概率合并),那就可以正着推了。
取i张的期望步数就是 \(f_{i}=\frac{i}{n}*f_{i}+\frac{n-i}{n}*f_{i+1}+1\)
期望钱数就是 \(g_{i}=\frac{i}{n}*(g_{i}+f_{i}+1)+\frac{n-i}{n}*(g_{i+1}+f_{i+1}+1)\)

对于有后效性的期望dp的高斯消元优化

wc我高斯消元忘了

for1(i,1,n){
    int id=i;
    for1(j,i+1,n) if(fabs(a[j][i])>fabs(a[j][id])) id=i;
    if(i!=id) swap(a[i],a[id])
    double div=a[i][i];
    for1(j,i,n) a[i][j]/=div;
    for1(j,i+1,n){
        div=a[j][i]/a[i][i];
        for1(k,i,n+1) a[j][k]-=div*a[i][k];
    }
}
for3(i,n,1){
    ans[i]=a[i][n+1]/a[i][i];
    for3(j,i-1,1){
        a[j][n+1]-=a[j][i]*ans[i];
        a[j][i]=0;
    }
}

具体而言,就是一列一列消,ok啊!然后就是 band-matrix 的消元了

for1(i,1,n){
    int id=i;
    for1(j,i+1,min(n,i+d)) if(fabs(a[j][i])>fabs(a[j][id])) id=j;
    for1(j,i,min(i+2*d,n)) swap(a[i][j],a[id][j]);
    double div=a[i][i];
    if(fbs(div)<eps) continue;
    for1(j,i,min(n,i+2*d)) a[i][j]/=div;
    for1(j,i+1,min(n,i+d)){
        div=a[j][i];
        for1(k,i,min(n,i+2*d)) a[j][k]-=a[i][k]*div;
        a[j][n+1]-=a[i][n+1]*div;
    }
}
for3(i,n,1){
    ans[i]=a[i][n+1];
    for1(j,i+1,min(n,i+2*d)) ans[i]-=a[i][j]*ans[j];
}

注意我们换的是行,所以换了之后有可能两倍长度的情况。

好多期望题

P3232

重新编号的意思是可以任意交换权值,那么我们想让期望最小,那么只需要让期望经过次数多的边的值大即可。考虑求每一条边期望经过次数,无向边,那就是从 \(u\) 走到 \(v\) 算一遍,从 \(v\) 走到 \(u\) 算一遍,那就变成了走到 \(u\) 的期望次数除以 \(d(u)+\) 走到 \(v\) 的期望次数除以 \(d(v)\)。那么 \(f_{i}=\sum \frac{f_{to}}{d_{to}}\)
\(f_{i}-\frac{f_{to}}{d_{to}}=0\)
\(f_{i}-\frac{f_{to}}{d_{to}}=1\)

P4316

和上一题类似.
\(f[to]\) 代表这个点走到终点的期望长度

P1850

感觉有点逆天。首先求出两点间最短路。
然后就是
\(dp[i][j][0/1]\) 就是学完第 \(i\) 次课,用了 \(j\) 次到了第一个,第二个教室的期望长度。考虑建一个图
\(dp[i][j][0]=min((dp[i+1][j+1][0]+a[][])*(1-k)+(dp[i+1][j+1][1]+a[][])*k,dp[i+1][j][0]+a[][]),dp[i][j][1]=min((dp[i+1][j+1][0]+a[][])*(1-k)+(dp[i+1][j+1][1]+a[][])*k,dp[i+1][j][0]+a[][])\)

P2221

from lay——你【】询问都不会怎么做?
考虑询问怎么做,再用线段树维护一下,询问也很简单,就是维护所有的子段和,然后什么 \(gcd\) 搞一下即可,考虑 push_down 怎么做,\(suf\)\(pre\) 好维护,\(sum\) 也好维护,就是预处理一下即可

CF280C

考虑变成删边。不会,好神奇啊。
有篇题解好像介绍了一个很厉害的东西。

约定

\(E(x)\)\(x\) 的期望值

\(p(x)\)\(x\) 取到这个值的概率

定义 \(A\) 的随机变量指示器为 \(I(A)\in \{0,1\}\) 如果发生则取到1,没发生就取0

分析

定义 \(x_{i}\)\(i\) 被选中的随机变量指示器。那么总共选的节点数就是 \(X=\sum x_{i}\),那么 \(E(X)=E(\sum x_{i})=\sum E(x_{i})\)那么\(E(x)=p(x)*1+p(!x)*0=p(x)\) 所以就是 \(x\) 点被选中的概率。这个被选中的概率是单次的概率。那就是 \(\frac{1}{dep_{i}}\),说实话,有点搞笑的。

P3750

感觉好神仙。策略肯定是从大往小。
那么定义 \(x_{i}\)\(i\) 被选中的随机变量指示器。那么总共被选的就是。我们发现选的方案必定是我们贪心出来的答案,因为这个方案无法替代。那么我们任何不按顺序的答案都要多按一次再按回来。所以我们设 \(f[i]\) 为已经按完 \(i\) 个剩下的期望操作次数,发现很难转移,要用band-matrix,但这样的转移时可以变成这样。设 \(f[i]\) 为从 \(i\)\(i-1\) 个需要按的按钮的期望。哦哦哦,按钮的顺序不影响。那么 \(f[i]=\frac{i}{n}+\frac{n-i}{n}*(f[i+1]+f[i]+1)\),然后简化一下 \(f_{i}=\frac{n-i}{i}f_{i+1}+\frac{n}{i}\),然后一直到 \(k+1\) 即可

P4284

能充上电当且仅当自己充上电了且其他有东西与它相连,那么就是枚举一下其他到这个的概率,那就是 \(\sum p[j]*dis[i-j]\)
换根就行了,哦,假了,概率不能直接加起来的。比如从下往上传的概率。有可能是自己有电了,也可能是下面有电传上来了,那么就是钦定。这个可以这么搞。设两个事件发生的概率为 \(P(A),P(B)\)。那么两个时间至少发生一个的概率 \(=1-(1-P(A))(1-P(B))=1-1+P(A)+P(B)-P(A)P(B)=P(A)+P(B)-P(A)P(B)\)。设当前根有点的概率为 \(f(i)\),那么和子树一个一个合并即可。
那么从上往下也很简单,一个前缀,一个后缀的概率即可。
注意,如果dfs里用了在外面的数组,需要好好考虑会不会改掉

CF24D

前面博客有写

P6899

\(f[i][j]\) 为移动到这个点的期望步数,因为这个没有终点。\(f[i][j]=f[i+1][j]*p_{2}+f[i-1][j]*p_{1}+f[i][j-1]*p_{4}+f[i][j+1]*p_{3}\),如果 \(i==1\) 那么再加上 \(\frac{1}{tot}\) 即可。这题就不能用 zb 的方法了。我们将这个东西编号,发现总的未知数是 \(2e5\) 个,我们的矩阵宽度是 \(40\),那么 \(80*40*2e5\) 可过,那空间呢,我们要开 \(2e5*80\) 个数,用 unmap 即可。

P3239

考虑一手 \(O(Tnr)\),设 \(f[i][j]\) 为第 \(j\) 张牌在第 \(i\) 轮发动的概率那么用文字表达就是前面没有发动过技能,然后前面的卡在这一轮没有发动过技能。没有一篇题解是对上的,要么试试看,哦,根本算不了,因为记录的东西太少了。考虑设 \(f[i][j]\)\(1-i\)\(r\) 轮中发动了 \(j\) 张的概率。\(f[i][j]=f[i-1][j-1]\),代表发动,\(r-j+1\) 轮有一轮发动,那么正难则反,随便搞搞即可。\(f[i-1][j]\),那么就是 \(r-j\) 轮都不发动,也随便搞搞。然后答案就是 \(\sum_{j=0}^{i-1} f[i-1][j]*(1-(p))\)

P2473

先猜一手 \(O(2^{n}k)\)。还是拆一下期望先逆推,那么容易想到设 \(dp[i][s]\) 为第 \(i-1\) 轮状态为 \(j\)\(i\) 开始后面得分的期望。那么枚举这一次出来的数,\(dp[i][s]=\sum_{j=1}^{n} \frac{1}{n}*max(dp[i+1][s|j]+p[j],dp[i+1][s])\)

P8967

\(f[{....}]=\sum p_{i}*f[{....}]+\sum \frac{f[{+1....}]*(1-p)}{n}\)
前一个是散入天际,后一个是正常走。
先从 \(n=1\) 入手。写成高斯消元的形式,那么就是每一行都有一个相同项,然后就是 \(f[i+1]=f[i]*(1-p)+x*p,x=\sum f[]\) 那么随便表示即可,\(n=2\) 使用高斯消元,然后不会了。看题解,琢磨琢磨!
分成两部分考虑,因为这里走路是没有限制的,相当于在一个无限的空间内随便走。那么我们直接走到中间的概率就是合法的方案/所有的方案。\(s_{i}=\sum d_{i}-x_{i}\)。所有方案就是 \(n^{s_{i}}\),合法方案就是相当于每种方向 \(d_{i}-x_{i}\) 种,然后随便排列,同种方向是一样的 \(\frac{s_{i}!}{\prod (d_{i}-x_{i})!}\) 那么概率就是 \(q_{i}\),期望步数就是 \(q_{i}s_{i}\)
发现如果散入了天际,那么走到终点的期望步数是一样的,设为 \(r\)。设某一个状态到达终点的期望步数是 \(f_{i}\) 那么 \(r=\frac{\sum p_{i}f_{i}}{P}\)
\(p\) 为这个散入天际的概率。那么我们期望值走几步才能散入天际呢,那就是 \(\frac{1}{sum p_{i}}\)。但是还会有直接走到终点的情况,就是 \(q_{i}*(s_{i}+\frac{1}{P})\),所以 \(g_{i}=\frac{1}{P}-q_{i}*(s_{i}+\frac{1}{P})\)
所以 \(f_{i}=q_{i}s_{i}+(1-q_{i})*r+g_{i}\)

\(f_{i}=q_{i}s_{i}+(1-q_{i})*r+\frac{1}{P}-q_{i}*(s_{i}+\frac{1}{P})\)

\(f_{i}=(1-q_{i})*r+\frac{1}{P}-q_{i}*(\frac{1}{P})\)

\(f_{i}=(1-q_{i})*r+\frac{1}{P}*(1-q_{i})\)

\(f_{i}=(r+\frac{1}{P})*(1-q_{i})\)

\(r=\sum \frac{p_{i}(r+\frac{1}{P})*(1-q_{i})}{P}\)

移项

\(f_{0}=(r+\frac{1}{P})*(1-q_{i})\)

P1654

怎么又是期望。维护三次方需要维护二次方一次方和常数。但我们的权值是 \(len^3\) 啊,不是全局的。那么我们维护当前连续的三次方期望和总的三次方期望是不是就可以了。\(f\) 为总,\(g\) 为连续。\(f[i]=f[i-1]+(g[i-1])\) 三次方 +1 的贡献。\(g[i]=g[i-1]\) 加三次方,

posted @ 2025-07-09 10:25  wuhupai  阅读(21)  评论(0)    收藏  举报