SHOI2014 概率充電器

2022-02-06 01:08:49 字數 2386 閱讀 9864

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

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

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

n≤500000

這個題目有一點要注意:間接充電也可以給別的元件充電。就是說,只要有電,就有機會可以給別的元件充電。

期望=概率*結果。由於個數貢獻都是1,所以,答案就是每個元件被充電的概率之和。

每個元件(以下簡稱點)被充電的可能情況是:1.直接充電。2.被子樹充電。3.被父親充電。

從子樹轉移,又要從父親轉移進來,所以肯定就要二次掃瞄+換根了。

第一次dfs,

f[i]表示,點i直接充電/被子樹充電的概率。

f[i]=1-(1-pi)(1-f[y1]*w(x,y1))(1-f[y2]*w(x,y2))...

即,所有點都不給i充電的概率,然後用1減它,就是被其中乙個充電的概率了。

第二次dfs

設g[x]表示,x被x的father充電的概率。

特別的,g[1]=0;

因為先後關係,肯定要除掉f[fa]被x充電的概率。

我們就要先求出,fa不被x充電時,被充電的概率k。

那麼就是,k=1-(1-pfa)(1-g[fa])(1-f[y1]*w(x,y1))(1-f[y2]*w(x,y2))...其中yi!=x

可以發現,後面的(1-f[y1]*w(x,y1))(1-f[y2]*w(x,y2))...

就是:(1-f[fa])/(1-f[x]*w(fa,x))

然後,g[x]=w(fa,x)*k

最後,乙個點被充電的概率就是:ans[x]=1-(1-g[x])(1-f[x])

即,1-不會充電的概率。

將概率做和即可。

但是乙個坑點,1-f[x]*w(fa,x)等於0怎麼辦?

不能除以0.

這個時候,就意味著,f[x]=1,w(fa,x)=1,x一定可以給y充電。

可以討論一下。

但是更直接地,f[x]一定是1,那麼ans[x]一定就是1了。

所以g[x]隨便是什麼都無所謂了。可以直接傳下去0

對於其他的兒子,其實k都是1了。

但是再除一下也無所謂反正k都是1。

#includeusing

namespace

std;

const

int n=500000+5

;const

double eps=0.0001

;int

n;double

p[n],f[n],g[n];

double

ans[n];

double

op;struct

nodee[

2*n];

inthd[n],las[n],cnt;

double

pre[n],bac[n];

void add(int x,int y,double

z)void dfs(int x,int

fa) f[x]=1.00-pi;

}void slo(int x,int fa,double val,double

pf)

else

for(int i=hd[x];i;i=e[i].nxt)

else

}}int

main()

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

dfs(

1,0);

//cout<<" bug ");

for(int i=1;i<=n;i++) op+=ans[i];

printf(

"%.6lf

",op);

return0;

}

總結:1.期望與概率和的直接轉化。

2.兒子有影響,但是父親也可能會影響下來,所以就分成兩個部分,二次掃瞄換根

3.注意,存在乙個點給x充電的概率,就是(1-不存在乙個給x充電的概率)

p=1-(1-p1)(1-p2)...(1-pn)

期望dp+換根,所有點充電的概率之和=答案的期望。

f[i],i子樹(包括i)給i充電概率

g[i],i的子樹外給i充電概率。

注意,至少有乙個充電能充電:p=1-(1-p1)(1-p2)...(1-pn),1-都不能

概率充電器(shoi2014)

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

SHOI2014 概率充電器

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

SHOI2014 概率充電器

著名的電子產品品牌 shoi 剛剛發布了引領世界潮流的下一代電子產品 概率充電器 採用全新奈米級加工技術,實現元件與導線能否通電完全由真隨機數決定 shoi 概率充電器,您生活不可或缺的必需品 能充上電嗎?現在就試試看吧 shoi 概率充電器由 n 1 條導線連通了 n 個充電元件。進行充電時,每條...