SHOI2014 概率充電器

2022-08-13 15:30:19 字數 2080 閱讀 5935

「採用全新奈米級加工技術,實現元件與導線能否通電完全由真隨機數決 定!shoi 概率充電器,您生活不可或缺的必需品!能充上電嗎?現在就試試看 吧!」

shoi 概率充電器由n-1 條導線連通了n 個充電元件。進行充電時,每條導 線是否可以導電以概率決定,每乙個充電元件自身是否直接進行充電也由概率 決定。隨後電能可以從直接充電的元件經過通電的導線使得其他充電元件進行 間接充電。

作為shoi 公司的忠實客戶,你無法抑制自己購買shoi 產品的衝動。在排 了乙個星期的長隊之後終於入手了最新型號的shoi 概率充電器。你迫不及待 地將shoi 概率充電器插入電源——這時你突然想知道,進入充電狀態的元件 個數的期望是多少呢?

第一行乙個整數:n。概率充電器的充電元件個數。充電元件由1-n 編號。

之後的n-1 行每行三個整數a, b, p,描述了一根導線連線了編號為a 和b 的 充電元件,通電概率為p%。

第n+2 行n 個整數:qi。表示i 號元件直接充電的概率為qi%。

輸出一行乙個實數,為能進入充電狀態的元件個數的期望,四捨五入到小 數點後6 位小數。

3

1 2 50

1 3 50

50 0 0

1.000000

5

1 2 90

1 3 80

1 4 70

1 5 60

100 10 20 30 40

4.300000

對於30%的資料,n≤5000。

對於100%的資料,n≤500000,0≤p,qi≤100。

概率期望 + 樹形dp

題目就是求\(\sum_^\)

我們發現乙個點可以被它的子樹更新,也可以被他的父親更新

所以我們設\(f[i]\)表示點i的子樹沒有點亮點i的概率

\(g[i]\)表示除了點i的子樹的點沒有點亮點i的概率

那麼乙個點沒有被更新只能是 : 自己沒有點亮 且 與他相連的點沒有點亮 或 與他相連的點點亮了但是路斷了

所以自己沒有點亮是條件,而後兩個是互斥的

所以後兩個是相加然後與條件一相乘

所以\(f[u] = (1-p[u]) * (f[v] + (1-f[v]) * (1 - p_))\)

然後\(g\)稍微難求一點

\(x = g[u] * f[u] / (f[v] + (1-f[v]) *(1 - p_))\)

\(x表示點v是ta的父親在不亮的情況下v不亮的情況\)

另一種情況就是ta的父親亮了但是路斷了

所以\(g[v] = x + (1-x)*(1-p_)\)

最後答案就是\(\sum\)

#include#include#include#includeconst int m = 500005 ;

using namespace std ;

inline int read()

while(c>='0'&&c<='9')

return x*w ;

}int n ;

int hea[m] , num ;

double p[m] , f[m] , g[m] , ans ;

struct e edge[m << 1] ;

inline void add_edge(int from , int to , double dis)

void dfs1(int u , int father)

}void dfs2(int u , int father)

}int main()

for(int i = 1 ; i <= n ; i ++) p[i] = read() / 100.0 ;

dfs1(1 , 1) ; g[1] = 1 ; dfs2(1 , 1) ;

for(int i = 1 ; i <= n ; i ++) ans += 1 - f[i] * g[i] ;

printf("%.6lf\n",ans) ;

return 0 ;

}

概率充電器(shoi2014)

出處 輾轉山河弋流歌 by 空灰冰魂 著名的電子產品品牌 shoi 剛剛發布了引領世界潮流的下一代電子產品 概率充電器 採用全新奈米級加工技術,實現元件與導線能否通電完全由真隨機數決定!shoi 概率充電器,您生活不可或缺的必需品!能充上電嗎?現在就試試看 吧!shoi 概率充電器由 n 1 條導線...

SHOI2014 概率充電器

採用全新奈米級加工技術,實現元件與導線能否通電完全由真隨機數決 定!shoi 概率充電器,您生活不可或缺的必需品!能充上電嗎?現在就試試看 吧!shoi 概率充電器由n 1 條導線連通了n 個充電元件。進行充電時,每條導 線是否可以導電以概率決定,每乙個充電元件自身是否直接進行充電也由概率 決定。隨...

SHOI2014 概率充電器

這是一道概率 樹形 dp 首先我們看到這裡每乙個的貢獻都是1,所以我們要求的期望就是概率 求得其實就是這個 sum np i p i 為節點 i 通電的概率 顯然節點 i 通電有三種可能 它自己來電了 它的子樹裡有乙個點來電了傳了過來 它的子樹外面有乙個點來電了傳了過來 第一種情況最好考慮了,至於第...