關於利用勢能函數求解期望

勢能函數

假定在狀態 \(A\) 下,構造勢能函數 \(\phi(A)\),對於任意轉移 \(A_i\rightarrow A_j\),滿足:

\[\phi(A_i)-\phi(A_j)=1 \]

\[i=j\Leftrightarrow\phi(A_i)=\phi(A_j) \]

使用勢能差即可得到所求期望。不難看出這和常規列期望轉移方程有相似之處。

CF1025G Company Acquisitions

給定 \(n\) 個節點,每個節點要麼爲根,要麼父親爲根;

現在有一種操作:等概率選取兩個 不同的根 \(x\)\(y\)(關心順序),將 \(y\) 的所有孩子變成根(有可能沒有),\(y\) 的父親設成 \(x\)

該操作當且僅當只剩下一個根時結束。

詢問期望操作數,對 \(10^9+7\) 取模。\(n \le 500\)

做法:設一棵有 \(x\) 個孩子的樹的勢能爲 \(f(x)\),當前局面勢能 \(\phi(A)=\sum_{a_i\in A}f(a_i)\)。對於操作,假設兩棵樹的孩子分別爲 \(x\)\(y\),操作完成以後,對於先後狀態的變化關係,根據 \(x\rightarrow y\)\(y\rightarrow x\) 的概率各佔一半,我們可以列出

\[(f(x)+f(y))-\left(\frac12(f(x+1)+yf(0))+\frac12(f(y+1)+xf(0))\right)=1 \]

由於是勢能,我們不關心 \(f(0)\) 的值,不妨設 \(f(0)=0\),得到

\[f(x)+f(y)=\frac12f(x+1)+\frac12f(y+1)+1 \]

\[\Rightarrow f(x+1)+f(y+1)=(2f(x)-1)+(2f(y)-1) \]

由於對於任意 \(x,y\) 方程均成立,我們可以寫出

\[f(x+1)=2f(x)-1 \]

解得 \(f(x)=1-2^x\)

最後求起末狀態的勢能差即可。

(未完待續)

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章