勢能函數
假定在狀態 \(A\) 下,構造勢能函數 \(\phi(A)\),對於任意轉移 \(A_i\rightarrow 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(0)\) 的值,不妨設 \(f(0)=0\),得到
由於對於任意 \(x,y\) 方程均成立,我們可以寫出
解得 \(f(x)=1-2^x\)
最後求起末狀態的勢能差即可。