洛谷 4316 綠豆蛙的歸宿

2021-09-01 20:51:15 字數 636 閱讀 4758

有向圖,等概率選擇路徑,問期望路徑長概率dp,f[i]表示i節點的期望路徑長

因為dp無後效性,所以反向建圖,來一遍toposort就好了沒有反向建圖

#include

#include

#define maxn 1000005

#define double long double

using

namespace std;

struct nodee[maxn]

;int n, m, tot =

0, index[maxn]

, head[maxn]

;double p[maxn]

, f[maxn]

;void

addedge

(int u,

int v,

int l)

; head[u]

= tot;

}queue <

int> q;

void

topo()

}}intmain()

topo()

;printf

("%.2llf\n"

, f[1]

);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綠豆蛙的歸宿

題目描述 記f i 表示經過i號點的概率。那麼點v從點u到達的概率 經過點u的概率 點u的出度。由於v可以由多個點走到,所以f v f u out u 計算f的過程可以在拓撲中完成,同時可以記錄走過這條邊的期望,相加就是答案。include include using namespace std c...

洛谷P4316 綠豆蛙的歸宿

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