10 03T3 期望DP 修改

2022-05-01 18:42:07 字數 3011 閱讀 3669

3、摧毀樹狀圖(graph)

題目描述:

自從上次神刀手幫助蚯蚓國增添了上千萬人口(蚯口?),蚯蚓國發展得越來越繁榮了!最近,他們在地下發現了一些神奇的紙張,經過仔細研究,居然是d國x市的超級計算機設計圖紙!這台計算機叫做『樹狀圖』,由n個計算節點與n-1條可以雙向通訊的網線連線而成,所有計算節點用不超過n的正整數編號。顧名思義,這形成了一棵樹的結構。蚯蚓國王已在圖紙上掌握了這棵樹的完整資訊,包括n的值與n-1條網線的連線資訊。於是蚯蚓國王決定,派出蚯蚓國最強大的兩個黑客,小p和小h,入侵『『樹狀圖』』,盡可能地摧毀它。小p和小h精通世界上最好的程式語言,經過一番商量後,他們決定依次採取如下的步驟:

1)整棵樹的每個計算節點有乙個故障率p,表示有p的機率會摧毀掉這個節點。顯而易見這個時候這個圖的連通塊個數會增加。國王(或者是小p/h)會派人詢問當前樹狀圖聯通塊的期望個數。

2)小p和小h水平並不是想象中那麼高,他們只能修改某個點的故障率,而且(他們甚至不知道故障率提公升越高越好)他們也想知道當前樹狀圖聯通塊的期望個數。

3)此時你不需要指揮他們入侵了,只需要計算每次修改節點故障率後,剩下的連通塊的期望個數即可。

注意:被摧毀的節點不算入連通塊的數量中。

輸入格式:

第一行乙個正整數n,表示節點數。

第二行n個實數,表示第i個點的故障率。

第3行到第3+n-2行每行兩個整數a,b,(1<=a,b<=n)表示啊a,b之間有一條邊。

接下來乙個正整數m,表示修改次數。

接下來m行,每行乙個正整數a和乙個實數c,表示將節點a的故障率修改為c。

輸出格式:

m行,表示每次修改過後連通塊的期望值。

樣例輸入1:

0.23 0.40 0.50

1 21 3

1 0.3

樣例輸入2:

0.50 0.20 0.90 0.50 0.50

2 15 3

3 14 3

5 0.50

4 0.10

2 0.40

4 0.80

1 0.30

樣例輸出1:

1.0300

樣例輸出2:

1.8500

2.2100

2.1100

1.4800

1.5400

資料規模與約定:

hch的官方題解:

我們考慮做有根樹的dp。設1為根。

我們設為v節點消失的概率,設

分別表示v節點被破壞/沒被破壞時的連通塊期望值。

解釋一下f[v][1]的轉移方程:因為如果v節點沒有被破壞,並且兒子節點sn也沒有被破壞,那麼連通塊的個數會減少,減少的數量就是sn所在的連通塊的期望,也就是

。當然我們不可能每次詢問了就dfs一遍計算,所以我們需要再研究一下遞推式。

我們先只考慮4號點對答案的貢獻。我麼按照遞推式模擬一遍。

最後答案就是

,也就是

。推廣到一般情況:v對答案的貢獻就是

,特別地,設

(0是1的父親)。

知道這個結論過後維護起來就特別方便了。我們記

。修改乙個點的概率時就相應地修改值就行了(具體見**)。

估計看不懂在說什麼

首先我們考慮如何求解不操作的情況。

考慮期望的線性性,我們統計每乙個節點對答案的貢獻。

首先,假裝每乙個節點都是乙個連通塊。

對於節點 x ,如果他消失了,那麼連通塊個數 -1,由於他消失的概率是 p

x'>px

,他對期望的貢獻為 p

i'>p

i 。對於無序數對 (x,

y)'>(x,y)

,如果 x 和 y 有邊連線,那麼,當且僅當他們都存在,才會對連通塊個數產生貢獻,所以它對期望的貢獻為 (1−

px)(

1−py

)'>(1−px)(1−py)

。完成了這個問題之後,修改操作也變得簡單了。

首先給樹定根。然後,只需要對於每乙個節點 x 維護乙個 vson[x] 代表其所有兒子的 (1−

py)'>(1−py)

之和。修改操作就變的簡單了。

時間複雜度 o(n

)'>o(n)

。code:

1 #include2 #include3

#define n 1000005

4using

namespace

std;

5struct

nodee[n];

8double

ans;

9int

first[n],nxt[n],cnt;

10void add(int u,int

v)16

double

add1[n],add2[n],sum[n],p[n];

17int

fa[n];

18void dfs(int x,int

father)

27 add2[x]=1.0*(1-p[x])*sum[x];

28 ans-=add1[x]+add2[x];29}

30int

main()

42 dfs(1,0

);43

int q;cin>>q;

44while(q--)

60return0;

61 }

over

HDU 3853 期望概率DP

期望概率dp簡單題 從 1,1 點走到 r,c 點,每走一步的代價為2 給出每乙個點走相鄰位置的概率,共3中方向,不動 x,y x y p x y 0 右移 x y x y 1 p x y 1 左移 x y x 1 y p x y 2 問最後走到 r,c 的期望 dp i j 為從 i j 點走到 ...

UvaLive6441(期望概率dp)

1.涉及負數時同時維護最大和最小,互相轉移。2.考場上最大最小混搭轉移wa,賽後發現如果是小的搭小的,大的搭大的就可過,類似這種 db a c i w i dp1 i 1 j 1 1 c i w i dp1 i 1 j 1 db b c i w i dp2 i 1 j 1 1 c i w i dp2...

2月總結 3月期望

2月,沒開始的結束 來學校沒幾天的2月,考研成績的公布,結果不好,心態卻還好。啥都沒做做,悠閒。不能突破自己,不想找導師聯絡調劑,感覺很麻煩,覺得找工作也很容易 這就是我的不足,卻突破不了 開始了,找工作的路。3月,忙碌的開始 開始了,工作。去了一場華科的招聘會。求職的人,人山人海,有不遠千里來的。...