hdu 4035 經典概率dp求期望

2021-06-28 23:40:47 字數 2021 閱讀 8640

求期望要用到全期望公式來來分類討論:

k[i]:表示死掉回到1的概率

e[i]:表示成功逃走的概率

那麼我們設定隨機變數x:在節點i處開始,逃走所走的邊數

那麼e[i]就是從節點i開始,要逃走的邊數的期望

如果i是葉子節點:

e[i] = k[i]*e[1] + e[i]*0 + (1-k[i]-e[i])*(e(parent(i))+1);       (1)

如果i不是葉子節點:

與i相連的節點的總數為m,j是i的孩子節點

e[i] = k[i]*e[1] + e[i]*0 + (1-k[i]-e[i])/m*(e(parent(i))+1) + (1-k[i]-e[i])/m*sum(e[j]+1);      (2)

為了簡化計算過程,我們設ai = k[i] , bi = (1-k[i]-e[i])/m , ci = bi*sum(e[j]+1)+bi;

那麼e[i] = ai*e[1] + bi*e[p]+ ci; (3)

匯出e[j] = aj*e[1] + bj*e[i] + cj;     (4)

進而得到sum(e[j]) = sum ( aj*e[1] + bj*e(i) + cj )     (5)

把(5)代入到(3)中得到

e[i] = ai*e[1] + bi*e[p] + bi*sum(aj*e[1] + bj*e[i] + cj + 1 ) + bi    (6)

=>(1-(1-ki-ei)/m*sum(bj))*e(i)=(ki+(1-ki-ei)/m*sum(aj))*e(1)+(1-ki-ei)/m *e(father)+(1-ki-ei+(1-ki-ei)/m*sum(cj));

所以與上述2式對比得到:

ai=(ki+(1-ki-ei)/m*sum(aj))       / (1-(1-ki-ei)/m*sum(bj))

bi=(1-ki-ei)/m                   / (1-(1-ki-ei)/m*sum(bj))

ci=(1-ki-ei+(1-ki-ei)/m*sum(cj)) / (1-(1-ki-ei)/m*sum(bj))

所以ai,bi,ci只與i的孩子aj,bj,cj和本身ki,ei有關

於是可以從葉子開始逆推得到a1,b1,c1

在葉子節點:

ai=ki;

bi=(1-ki-ei);

ci=(1-ki-ei);

而e(1)=a1*e(1)+b1*0+c1;

=>e(1)=c1/(1-a1);

當a趨近於1時,那麼無解,精度卡到1e-9才能過

#include #include #include #include #include #define max 10007

#define eps 1e-9

using namespace std;

int t,n,x,y;

double k[max],e[max],a,b,c;

struct edge

edge[max<<1];

int head[max];

int cc;

void add ( int u , int v )

void dfs ( int u , int p )

if ( p != -1 ) m++;

t = (1-k[u]-e[u])/m;

a = (k[u]+t*a)/(1-t*b);

b = t/(1-t*b);

c = (1-k[u]-e[u]+t*c)/(1-t*b);

}int main ( )

for ( int i = 1 ; i <= n ; i++ )

dfs ( 1 , -1 );

printf ( "case %d: " , case++ );

if ( fabs( a-1 ) < eps )

puts ( "impossible");

else printf ( "%.6lf\n" , c/(1-a) );

}}

hdu4035 樹上概率dp

從葉子到根,帶入公式求引數 kuangbin hdu 4035 dp求期望的題。題意 有n個房間,由n 1條隧道連通起來,實際上就形成了一棵樹,從結點1出發,開始走,在每個結點i都有3種可能 1.被殺死,回到結點1處 概率為ki 2.找到出口,走出迷宮 概率為ei 3.和該點相連有m條邊,隨機走一條...

HDU 4035 Maze 樹形概率DP

題意 一棵樹,從結點1出發,在每個結點 i 都有3種可能 1 回到結點1 概率 ki 2 結束,概率 ei 3 隨機走一條邊。ki ei 隨機走 1 求到結束需要走的邊數的期望。假設e i 為點i到結束走邊數的期望,則有 以下m為點的度數 e i ki e 1 1 ei ki m e fa i 1 ...

hdu 4035 Maze (概率與期望DP)

題目描述 一棵樹,乙個人初始在1號點。每次到達乙個點,有ki的概率被殺死,並且回到1號點,有ei的概率直接逃離,然後等概率的逃到與他相鄰的節點 1 ki ei du i 每次移動步數 1。求逃出去的期望步數。這道題與上面題的思想和方法是類似的。我們先假設逃離是到達節點0,那麼e 0 0,倒著推。對於...