题目描述 记f[i]表示经过i号点的概率. 那么点v从点u到达的概率=经过点u的概率/点u的出度.由于v可以由多个点走到,所以f[v]+=f[u]/out[u]. 计算f的过程可以在拓扑中完成,同时可以记录走过这条边的期望,相加就是答案. #include<complex> #include<cstdio> using namespace std; ; struct node{ int v,w,nxt; }e[N<<]; int n,m,Enum; double ans
最水的概率期望,推荐算法合集之<浅析竞赛中一类数学期望问题的解决方法> #include <iostream> #include <cstdio> using namespace std; #define N 100010 #define M 200020 struct E { int next,to,v; }e[M]; double f[N]; int head[N],vis[N],oute[N]; int n,m,cnt; inline int read() { ,
从终点往起点倒推 . 在一个图 考虑点 u , 出度为 s : s = 0 , d[ u ] = 0 ; s ≠ 0 , 则 d( u ) = ( ∑ d( v ) ) / s ( ( u , v ) ∈ E ) ---------------------------------------------------------------------------- #include<cstdio> #include<cstdlib> #include<cstring>