洛谷 P4316綠豆蛙的歸宿

2022-05-01 03:45:08 字數 704 閱讀 9846

題目描述

記f[i]表示經過i號點的概率。

那麼點v從點u到達的概率=經過點u的概率/點u的出度。由於v可以由多個點走到,所以f[v]+=f[u]/out[u]。

計算f的過程可以在拓撲中完成,同時可以記錄走過這條邊的期望,相加就是答案。

#include#include

using

namespace

std;

const

int n=1e5+7

;struct

nodee[n

<<1

];int

n,m,enum;

double

ans;

int front[n],in[n],out

[n];

double

f[n];

int q[n],tail,head=1

;int

qread()

returnx;}

void insert(int u,int v,int

w)int

main()

f[1]=1

; q[++tail]=1

;

while(head<=tail)

}printf(

"%.2lf\n

",ans);

return0;

}

洛谷P4316 綠豆蛙的歸宿

思路 因為每條邊等概率,那麼就很輕鬆了,我們先跑個拓撲,確定拓撲序之後,從最後乙個點向前更新,初始是f n 0f n 0 f n 0 能到n的點會獲得 w i f n deg u frac deg u w i f n 的期望長度,因為u的度數是deg u deg u deg u 所以有1de g u...

洛谷P4316 綠豆蛙的歸宿

題目描述 有一張 n n leq 10 5 個點的dag,圖上每一條邊都有乙個邊權 w 從1號點開始,一直走到 n 號點,沒到達乙個點,如果該節點有 k 條出邊,可以選擇任意一條邊離開該點,並且走向每條邊的概率為 frac 問到達 點 n 的期望路徑長度是多少?輸入樣例 4 4 1 2 1 1 3 ...

P4316 綠豆蛙的歸宿

poetize3 給出乙個有向無環圖,起點為1終點為n,每條邊都有乙個長度,並且從起點出發能夠到達所有的點,所有的點也都能夠到達終點。綠豆蛙從起點出發,走向終點。到達每乙個頂點時,如果有k條離開該點的道路,綠豆蛙可以選擇任意一條道路離開該點,並且走向每條路的概率為 1 k 現在綠豆蛙想知道,從起點走...