[Codeforces 1042E]Vasya and Magic Matrix(期望 DP) 阿新 • • 發佈:2019-01-13 Address 洛谷 RemoteJudge Codeforces 1042E Meaning 一個 n n n 行 m m m 列的矩陣,每個位置有個權值 給定一個起始位置 ( r , c ) (r,c) (r,c) 每次等概率隨機地移動到一個權值嚴格比自己小的位置,得分為移動前和移動後的兩個位置的歐幾里得距離的平方,這樣一直移動直到無法移動為止 求得分的期望 1 ≤ n , m ≤ 1000 1\le n,m\le 1000 1≤n,m≤1000 Solution 非常簡單的期望 DP 先把權值排序,設排序後第 i i i 個位置座標為 ( x i , y i ) (x_i,y_i) (xi,yi) ,權值為 a i a_i ai f [ i ] f[i] f[i] 表示從第 i i i 個位置開始移動,直到無法移動的期望得分 很容易得出轉移 f [ i ] = 1 c n t i ∑ j = 1 , a j < a i i − 1 { f [ j ] + ( x i − x j ) 2 + ( y i − y j ) 2 } f[i]=\frac 1{cnt_i}\sum_{j=1,a_j<a_i}^{i-1}\{f[j]+(x_i-x_j)^2+(y_i-y_j)^2\} f[i]=cnti1j=1,aj<ai∑i−1{f[j]+(xi−xj)2+(yi−yj)2} 其中 c n t i cnt_i cnti 表示權值嚴格小於 a i a_i ai 的位置個數 複雜度 O ( n 2 m 2 ) O(n^2m^2) O(n2m2) 強行推一波式子 f [ i ] = 1 c n t i ∑ j = 1 , a j < a i i − 1 { f j + x j 2 + y j 2 − 2 x i x j − 2 y i y j } + x i 2 + y i 2 f[i]=\frac 1{cnt_i}\sum_{j=1,a_j<a_i}^{i-1}\{f_j+x_j^2+y_j^2-2x_ix_j-2y_iy_j\}+x_i^2+y_i^2 f[i]=cnti1j=1,aj<ai∑i−1{fj+xj2+yj2−2xixj−2yiyj}+xi2+yi2 = 1 c n t i ( ∑ j = 1 , a j < a i i − 1 { f j + x j 2 + y j 2 } − 2 x i ∑ j = 1 , a j < a i i − 1 x j − 2 y i ∑ j = 1 , a j < a i i − 1 y j ) + x i 2 + y i 2 =\frac 1{cnt_i}(\sum_{j=1,a_j<a_i}^{i-1}\{f_j+x_j^2+y_j^2\}-2x_i\sum_{j=1,a_j<a_i}^{i-1}x_j-2y_i\sum_{j=1,a_j<a_i}^{i-1}y_j)+x_i^2+y_i^2 =cnti1(j=1,aj<ai∑i−1{fj+xj2+yj2}−2xij=1,aj<ai∑i−1xj−2yij=1,aj<ai∑i−1yj)+xi2+yi2 參與轉移的 j j