期望 DP
期望
定义
略
性质
C C C 为常数, X , Y X,Y X,Y 为随机变量
- E ( C ) = C E(C)=C E(C)=C
- E ( C x ) = C E ( x ) E(Cx)=CE(x) E(Cx)=CE(x)
- E ( x + y ) = E ( x ) + E ( y ) E(x+y)=E(x)+E(y) E(x+y)=E(x)+E(y)
- 当 x , y x,y x,y 相互独立时, E ( x y ) = E ( x ) E ( y ) E(xy)=E(x)E(y) E(xy)=E(x)E(y)
注:3,4 条是重点
期望 DP
期望 DP,是一种 DP,所以核心思想与一般的 DP 差不多(事实上,并没有什么特别的)。
一般,设 f [ i ] [ j ] f[i][j] f[i][j] 为此状态的期望,状态转移时,将上一个状态的值和花费的和乘以转移的概率求和。(如成环,高斯消元)
例题
路径长度
题目描述
给定一起点为 1 1 1,终点为 n n n 的有向无环图,对于一个出度为 K K K 的点,走每条边离开的概率为 1 K \cfrac{1}{K} K1。求从起点到终点的路径期望长度。
这是一个引入。
利用性质 3,问题转化为求出经过每条边的期望次数,不过这并不好求,所以我们再转化为求每个节点的期望经过次数(这是一种十分常见的操作)。
#include <iostream>
#include <cstdio>
#include <algorithm>
#include <cstring>
using namespace std;
struct node {
int to, next, w;
} edge[200005];
int t[100005], cnt = 1, out[100005], in[100005];
int q[200005];
double ans, f[100005];
int n, m;
void create