若乙個點有
k' role="presentation" style="position: relative">k
k條出邊,則走每條出邊的概率均為1k
' role="presentation" style="position: relative">1k1
k。給出乙個有向無環圖,求從起點走到終點的所經過的路徑總長度期望。 in
put' role="presentation" style="position: relative">inp
utinput
4 4
1 2 1
1 3 2
2 3 3
3 4 4
ou
tput
' role="presentation" style="position: relative">out
puto
utpu
t
7.00
這很明顯是一道數學期望的題目。但是由於之前沒有做過這類的題目,所以做起來還是很吃力。
拿樣例來說
點1' role="presentation" style="position: relative">1
1一開始肯定是有1.00的機率到達的,它有兩條出邊,分別到達點
2' role="presentation" style="position: relative">22和點
3' role="presentation" style="position: relative">3
3,那麼,點
2' role="presentation" style="position: relative">22和點
3' role="presentation" style="position: relative">3
3就各有0.50的機率到達。
那麼,點
2' role="presentation" style="position: relative">2
2又有一條出邊到達點
3' role="presentation" style="position: relative">3
3,那麼點
3' role="presentation" style="position: relative">3
3到達的機率就在原來的基礎上又加上了點
2' role="presentation" style="position: relative">2
2的到達機率,所以點
3' role="presentation" style="position: relative">3
3的到達機率為1.00。
然後點3
' role="presentation" style="position: relative">3
3就只有一條出邊,通向點
4' role="presentation" style="position: relative">4
4,所以點
4' role="presentation" style="position: relative">4
4到達機率就為
每次當我們訪問到乙個點時,就講答案su
m' role="presentation" style="position: relative">sum
sum加上它到達的概率
×' role="presentation" style="position: relative">×
×邊權,即su
m+=s
[x]n
um[x
]×e[
i].d
is' role="presentation">sum
+=s[
x]nu
m[x]
×e[i
].di
ssum
+=s[
x]nu
m[x]
×e[i
].di
s且這個點的期望也要加上s[
x]nu
m[x]
' role="presentation" style="position: relative">s[x
]num
[x]s
[x]n
um[x
]然後繼續向下搜尋,搜到點
n' role="presentation" style="position: relative">n
n時就返回,然後將期望值減去s[
x]nu
m[x]
' role="presentation" style="position: relative">s[x
]num
[x]s
[x]n
um[x
],防止重複計算。
#include
#include
using
namespace
std;
int n,m,x,y,t;
double z,sum,s[300011],num[300011],head[300011],k;
struct edge //鄰接表
e[500011];
void add(int from,int to,double d) //建邊
void dfs(int x)
}int main()
s[1]=1.00;
dfs(1);
printf("%0.2lf\n",sum);
return
0;}
綠豆蛙的歸宿 期望 DFS
若乙個點有 k role presentation style position relative k k條出邊,則走每條出邊的概率均為1k role presentation style position relative 1k1 k。給出乙個有向無環圖,求從起點走到終點的所經過的路徑總長度期望。...
綠豆蛙的歸宿
綠豆蛙的歸宿 time limit 10000ms memory limit 165536k total submit 3 accepted 1 case time limit 1000ms description 給出乙個有向無環的連通圖,起點為1終點為n,每條邊都有乙個長度。綠豆蛙從起點出發,走...
綠豆蛙的歸宿
兩種方法,正推和逆推 逆推 dp i 表示從 i 到 n 的期望,方程的轉移 對於一條從 x 到 y 邊 dp x sum limits dp y edge i oud x 正推 dp i 表示從 1 到 i 的期望,g i 表示從 1 到 i 的概率,方程的轉移 對於一條從 x 到 y 的邊 dp...