【湖南集訓 4.14】C


題目描述

給出一棵 n 個點,邊權為 1 的樹,節點皆為黑色或白色,隨機起點,每一次你會從 n 個點中隨機一個點 x ,從當前點走過去,並且將 x 反色。當所有點都為黑或白的時候停止。問期望經過路徑的總長。

50%:n102
100%:n105


分析

這道題顯然是用期望的線性性,但是怎么去拆就會有很大的不同。

首先有一個技巧就是一般來說貢獻可以寫成“期望次數 × 權值”的形式。

部分分

考慮拆成一對有序點對 (x,y) 間路徑的期望貢獻。
具體來說怎么去算呢?

那么我們這里只關心黑點情況以及當前在不在點 x 處,就可以寫出轉移了。
fcx,cy,bc,isx 表示 x,y 的顏色分別為 cx,cy ,除 x,y 以外還有 bc 個黑點, isx 表示當前所在點是否為點 x ,這個狀態下, (x,y) 這段路徑被經過的期望次數。(顯然單獨看經過次數這個角度任意的 y 都是等價的,因此我們這里並不強調 y 的不同)
那么接下來就是考慮這個狀態下下一步轉移到什么狀態,記當前狀態為 now

  • isx=1
    • 轉移到一個普通點 y
      • y 是白點,對 now 的貢獻為 n2bcnfcx,cy,b+1,0
      • y 是黑點,對 now 的貢獻為 bcnfcx,cy,bc1,0
    • 轉移到自己, 1nf!cx,cy,bc,1
    • 轉移到 y 1n(fcx,!cy,bc,0+1)

同理不難寫出當 isx=0 時的轉移。
對這些方程進行高斯消元就可以了,答案顯然就是枚舉任意一對有序點對計算貢獻。

正解

考慮拆成從每個點出發的期望代價乘上到達每個點的期望次數。

只要沒結束的情況下,從一個點出發的期望顯然就是所有點到它的距離和的平均數。

而與期望次數有關系的,僅僅是當前局面的黑點數量。
然后因為這道題目中高度的對稱性,當黑點數量固定的時候,每個黑(白)點的期望經過次數時一樣的(它甚至不與這個點是誰有關)。

那么這里考慮這樣子去設計DP。令 fi,0 表示有 i 個黑點時,黑點的期望經過次數。類似地定義 fi,1 表示白點期望次數。
考慮轉移

fi,0=ninfi+1,0+i1nfi1,0+1n(fi1,1+1)

分別表示到了一個普通白點,一個普通黑點,或者到了它自己,同理寫出 fi,1 的轉移

fi,1=infi1,1+ni1nfi+1,1+1n(fi+1,0+1)

但是注意,假如我們轉移到一個終止態時,不要加一。因為它不再走出去了。
由於開始時我們從隨機一個點出發,我們需要將每個期望次數都加上 1n

注意到這里轉移既關於 i1 ,又關於 i+1 ,裸上高斯消元可以,但是復雜度難以接受,我們需要考慮更好的做法。

首先我們有 f0,01 以及 fn,01 都是已知的 0
移項,發現 fi+1,0 依賴於 fi1,01 fi,0
fi+1,1 依賴於 fi+1,0,fi1,1,fi,1

那么考慮將每一個狀態都表示成 af1,0+bf1,1+c 的形式。
fn1, 的時候,根據未移項的式子寫出二元一次方程組,就可以解出 f1,01 ,接着遞推回來我們就可以得到所有的 f

至此,這道題目就做完了,是一道很不錯的概率題。

時間復雜度 O(n)
空間復雜度 O(n)


注意!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系我们删除。



 
粤ICP备14056181号  © 2014-2021 ITdaan.com