日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

洛谷 P4284 [SHOI2014]概率充电器 解题报告

發(fā)布時(shí)間:2025/4/14 编程问答 24 豆豆
生活随笔 收集整理的這篇文章主要介紹了 洛谷 P4284 [SHOI2014]概率充电器 解题报告 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

P4284 [SHOI2014]概率充電器

題目描述

著名的電子產(chǎn)品品牌SHOI 剛剛發(fā)布了引領(lǐng)世界潮流的下一代電子產(chǎn)品—— 概率充電器:

“采用全新納米級加工技術(shù),實(shí)現(xiàn)元件與導(dǎo)線能否通電完全由真隨機(jī)數(shù)決 定!SHOI 概率充電器,您生活不可或缺的必需品!能充上電嗎?現(xiàn)在就試試看 吧!”

SHOI 概率充電器由 \(n-1\) 條導(dǎo)線連通了 \(n\) 個(gè)充電元件。進(jìn)行充電時(shí),每條導(dǎo)線是否可以導(dǎo)電以概率決定,每一個(gè)充電元件自身是否直接進(jìn)行充電也由概率決定。隨后電能可以從直接充電的元件經(jīng)過通電的導(dǎo)線使得其他充電元件進(jìn)行 間接充電。

作為 SHOI 公司的忠實(shí)客戶,你無法抑制自己購買 SHOI 產(chǎn)品的沖動。在排了一個(gè)星期的長隊(duì)之后終于入手了最新型號的 SHOI 概率充電器。你迫不及待地將 SHOI 概率充電器插入電源——這時(shí)你突然想知道,進(jìn)入充電狀態(tài)的元件個(gè)數(shù)的期望是多少呢?

輸入輸出格式

輸入格式:

第一行一個(gè)整數(shù):\(n\)。概率充電器的充電元件個(gè)數(shù)。充電元件由 \(1-n\) 編號。

之后的 \(n-1\) 行每行三個(gè)整數(shù)\(a,b,p\) ,描述了一根導(dǎo)線連接了編號為 \(a\)\(b\) 的 充電元件,通電概率為\(p\%\)

\(n+2\)\(n\) 個(gè)整數(shù):\(q_i\)。表示 \(i\) 號元件直接充電的概率為 \(q_i\%\)

輸出格式:

輸出一行一個(gè)實(shí)數(shù),為能進(jìn)入充電狀態(tài)的元件個(gè)數(shù)的期望,四舍五入到小數(shù)點(diǎn)后6位小數(shù)。

說明

對于\(30\%\)的數(shù)據(jù),\(n≤5000\)

對于\(100\%\)的數(shù)據(jù),\(n≤500000\)\(0≤p,q_i≤100\)


果然一做期望題就暴露自己腦子蠢的事實(shí)了=-=

首先我讀錯(cuò)題了,但是我覺得不能怪我啊,難道題目說的不就是只有自己激發(fā)的才能傳火給別人嘛...

然后我花了好久才發(fā)現(xiàn)這個(gè)題就是在算概率。

每個(gè)點(diǎn)可以從所有其他點(diǎn)獲取傳火概率,做一個(gè)換跟dp就行了,具體的

\(dp_i\)先處理出子樹\(i\)的貢獻(xiàn),然后直接換跟做就可以了。

需要注意的地方,傳火的時(shí)候要減去兩個(gè)都有,換跟中有一個(gè)類似退背包的過程需要處理分母為0


Code:

#include <cstdio> #include <cmath> const int N=5e5+10; const double eps=1e-8; int head[N],to[N<<1],Next[N<<1],cnt; double dp[N],ans,edge[N<<1]; void add(int u,int v,double w) {to[++cnt]=v,edge[cnt]=w,Next[cnt]=head[u],head[u]=cnt; } void dfs1(int now,int fa) {for(int v,i=head[now];i;i=Next[i])if((v=to[i])!=fa){dfs1(v,now);dp[now]=dp[now]+dp[v]*edge[i]-dp[now]*dp[v]*edge[i];} } void dfs2(int now,int fa,double p) {dp[now]=dp[now]+p-dp[now]*p;ans+=dp[now];for(int v,i=head[now];i;i=Next[i])if((v=to[i])!=fa){if(fabs(dp[v]*edge[i]-1)<eps) p=dp[now];else p=(dp[now]-dp[v]*edge[i])/(1-dp[v]*edge[i]);dfs2(v,now,p*edge[i]);} } int main() {int n;scanf("%d",&n);for(int u,v,w,i=1;i<n;i++){scanf("%d%d%d",&u,&v,&w);add(u,v,1.0*w/100),add(v,u,1.0*w/100);}for(int i=1;i<=n;i++) scanf("%lf",dp+i),dp[i]/=100.0;dfs1(1,0);dfs2(1,0,0);printf("%.6lf\n",ans);return 0; }

2019.1.13

轉(zhuǎn)載于:https://www.cnblogs.com/butterflydew/p/10262582.html

《新程序員》:云原生和全面數(shù)字化實(shí)踐50位技術(shù)專家共同創(chuàng)作,文字、視頻、音頻交互閱讀

總結(jié)

以上是生活随笔為你收集整理的洛谷 P4284 [SHOI2014]概率充电器 解题报告的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。