Luogu P4316 綠豆蛙的歸宿 期望DP

2022-05-12 11:57:07 字數 594 閱讀 9346

題面

挺簡單的概率期望dp

設\(f[i]\)為\(i\)到\(n\)的期望路徑的長度

答案就是\(f[1]\)

\(f[x]=(\dfrac)*∑(f[y]+dis)\)

\(d\)是度數,\(y\)是\(x\)的兒子,\(dis\)就是距離

這個式子比較顯然

但是這個是從後往前推的

需要反著建圖然後再通過拓撲排序dp

**如下:

#includeusing namespace std;

const int maxn=100010;

int n,m,head[maxn<<1],tot,d[maxn],in[maxn];

double f[maxn];

struct nodee[maxn<<2];

inline void add(int fr,int to,int di)

inline void tops()

}}int main()

tops();

printf("%.2lf\n",f[1]);

return 0;

}

Luogu P4316 綠豆蛙的歸宿

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

洛谷 4316 綠豆蛙的歸宿

有向圖,等概率選擇路徑,問期望路徑長概率dp,f i 表示i節點的期望路徑長 因為dp無後效性,所以反向建圖,來一遍toposort就好了沒有反向建圖 include include define maxn 1000005 define double long double using namesp...

P4316 綠豆蛙的歸宿

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