Bzoj3566 SHOI2014 概率充電器

2022-05-13 13:05:53 字數 2217 閱讀 4250

time limit: 40 sec  memory limit: 256 mb

submit: 999  solved: 428

著名的電子產品品牌 shoi 剛剛發布了引領世界潮流的下一代電子產品——概率充電器:

「採用全新奈米級加工技術,實現元件與導線能否通電完全由真隨機數決定!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%。

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

3 1 2 50

1 3 50

50 0 0

1.000000

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

by 佚名提供

我們推出全新史詩級卡池,實現抽到稀有卡的概率無限趨近於0!bang dream idol festival 限定限時卡池,您抽卡不可錯失的良機!能抽到ur嗎?現在就試試看吧!

↑做題的時候突然腦洞出這麼一句,莫名喜感

數學問題 數學期望dp 樹形dp

正著求好像有各種精度問題,於是選擇求每個結點不能充上電的概率,最後用概率算期望。

一遍dp從下面上來,求出每個點由子樹或者自身不能充電的概率

一遍pd從上面下去,求出每個點由父親不能充電的概率。

算貢獻即可。

難得流暢地推出了dp公式,然而日常犯蠢。第35行的g是要在當前節點的f[u]都算完以後才能算的,被我扔到第28行後面,wa了四五次還不明就裡

1

/*by silvern

*/2 #include3 #include4 #include5 #include6 #include7 #include8

using

namespace

std;

9const

int mxn=500010;10

intread()

13while(ch>='

0' && ch<='9')

14return x*f;15}

16struct

edgee[mxn<<1

];20

int hd[mxn],mct=0;21

intw[mxn];

22double f[mxn],g[mxn];//

不從子樹充電的概率,不向上貢獻的概率

23double dp[mxn];//

不從父親充電的概率

24void add_edge(int u,int v,double

w)27

void dp(int u,int fa,int id)

35 g[u]=f[u]+(1.0-f[u])*(1.0-e[id].w);

36//

printf("f[%d]:%.3f g[%d]:%.3f\n",u,f[u],u,g[u]);

37return;38

}39void pd(int u,int fa)

49return;50

}51intn;

52double ans=0;53

intmain()

62for(i=1;i<=n;i++)w[i]=read();

63 dp(1,0,0

);64 dp[1]=1

;65 pd(1,0

);66

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

67 printf("

%.6lf\n

",ans);

68return0;

69 }

BZOJ 3566 SHOI2014 概率充電器

題目 題意 給定樹形結構的n個元件,每個元件有一定概率自己充電,還有一定概率通過某條邊給其他元件充電,求充電的元件期望個數。n 500000 題解 樹形結構肯定能想到樹形dp,全樹對某點產生的貢獻一般可以通過一到兩遍樹形dp計算得出,本題所求期望等於每個元件被充電的概率之和。設f i 表示i被充電的...

bzoj3566 SHOI2014 概率充電器

n個充電器連成一棵樹。第i個充電器有p i 的概率直接充電。每條導線有一定機率可以導電。可以導電的導線形成的聯通塊中只要存在直接充電的結點整個聯通塊的充電器均進入充電狀態。問期望進入充電狀態的充電器個數 顯然可知我們只需要得到f i 表示i進入充電狀態的概率 那麼a ns f i 我們把無根樹變有根...

bzoj3566 SHOI2014 概率充電器

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