邊\((u,v,w)\)的期望經過次數是不好直接算的,但如果我們能算得點\(u\)的期望經過次數為\(dp(u,v)\),那麼邊\((u,v,w)\)的期望經過次數是\(dp(u)*\frac1{|G_u|}\),對答案的貢獻就是\(w*dp(u)*\frac1{|G_u|}\) 如何計算點\(u\)的期望經過次數\(dp(u)\)呢?我們依然考慮 DP ...
1、int[][] dp = new int[N+1][K+1];是我們的DP表的範圍 2、當rest = 0的時候,dp[cur][rest] = cur == P ? 1 : 0; 我們只有cur=P的時候為1,其他位置都為0。 3、當cur=1的時候,dp[cur][rest] = walkCache(N, 2, rest - 1, P, dp); 我們的dp當前的值,依賴於cur的下一個位置...
首先對於這個\(dp\)陣列的初始化就是將輸入的邊\(x-y\)權值為\(z\)(無權圖就是\(1\)),如果圖是無向,則\(dp_{xy}=dp_{yx}=z\),如果圖是有向,則\(dp_{xy}=z\),最後將所有\(dp_{ii}=0 (0\le i\le n)\),比較顯然,這裡不做解釋。 接著我們進行狀態轉移。顯然,我們要轉移\(dp_{i...