SHTSC2014 概率充電器 charger

2021-08-15 06:18:39 字數 1127 閱讀 4774

給你一棵樹,每個點有直接通電的概率,每條邊有導電的概率。求出期望有電節點數。

我一開始就想到了高斯消元,每條邊連乙個亂起八糟的東西,然後發現我自己也亂七八糟了起來,就利用概率的線性性搞出了乙個n^2的暴力,然後就交了。

正解其實也很簡單,因為期望的線性性,所以答案就是每個點的通電概率加起來的和。然後因為每個點的貢獻只有可能從連出去的邊轉移來,又要沒有後效性,我們就可以設f,g分別是從上往下搜,和從下往上搜每個點的期望。最後就可以直接求出每個點的期望了。

#include

#include

#include

#include

#define n 500001

#define fo(i,j,k) for(int i=j;i<=k;i++)

#define fd(i,j,k) for(int i=j;i>=k;i--)

#define fr(i,j) for(int i=last[j];i;i=e[i].next)

using namespace std;

int n,cnt,q[n],inq[n];

double f[n],g[n],h[n],last[n],a[n];

struct datae[n*2];

void add(int

x,int

y,double w)

void dfs1(int u,int fa)

}void dfs2(int u,int fa)

}int main()

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

/* dfs1(1,0);

g[1]=1;

dfs2(1,0);*/

int ti=0;

inq[q[++ti]=1]=1;

fo(i,1,n)

fo(i,1,n)inq[i]=0;

fd(i,n,1)

}g[1]=1;

fo(i,1,n)inq[i]=0;

fo(i,1,n)

}double ans=0;

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

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

}

概率充電器

記憶體限制 256 mib 時間限制 2000 ms 標準輸入輸出 題目描述 著名的電子產品品牌 shoi 剛剛發布了引領世界潮流的下一代電子產品 概率充電器 採用全新奈米級加工技術,實現元件與導線能否通電完全由真隨機數決定 shoi 概率充電器,您生活不可或缺的必需品 能充上電嗎?現在就試試看吧 ...

概率充電器(shoi2014)

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

SHOI2014 概率充電器

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