uvalive3305 雙調歐幾里德旅行問題

2021-07-11 16:02:56 字數 1412 閱讀 4926

題目大意:

給出座標是按照x從左到右排序好的,求從最左走到最右再從最右走到最左邊的最短路程

思路:

雙線性dp。

將乙個人從最左端走到最右端,然後從最右端走到最左端等價成兩個人同時從最左端不重複的走過中間的點並且到最右端。

我們不妨設這兩個人為a和b,且總是假定走在前面的人是a。

再設函式dp(i, j)表示a走到i的位置,b走到j的位置,並且所有i,j之前的位置都被不重複的走過的最短距離之和。

由此得到遞推公式:

dp[i+1][i] = min(dp[i+1][i], dp[i][j] + distance(j, i+1));

dp[i+1][j] = min(dp[i+1][j], dp[i][j] + distance(i, i+1));

由於最右節點必然是終點,所以走的快的人必然到達了n點,最終的距離就是列舉i,dp[n][i] + distance(i, n)中最小的。

j < i , j 跳到i+1 。

j < i i跳到i + 1

}/* double ans = 0x3f;//為什麼寫這個就wa??

int temp;

for(int i = 0; i < n - 1; i++)

}printf("%.2lf\n",ans + dist[n - 1][temp]);*/

printf("%.2lf\n",dp[n - 1][n - 2] + dist[n - 1][n - 2]);

}return

0;}

考試總結 3 30

1.用什麼命令顯示當前目錄?echo 2.將當前目錄下的myftp.tar.gz解壓到 tmp下?tar xvzfmyftp.tar.gz c tmp 關於tar每列的補充 c解壓到指定目錄 c建立新的存檔 a與已有的存檔合併 d比較存檔與當前文件的不同之處 r附加到存檔結尾 f指定存檔或裝置 w每...

3 30 學習筆記

關閉鍵盤 self.num resginfirstresponder 讓試圖關閉見鍵盤 self.view enditing yes h 檔案 公有擴充套件 m檔案 私有擴充套件 中書寫私有的擴充套件 ibaction 本質上是乙個void 只不過多了乙個 連線 oc是乙個動態語言 編譯正確 但是 ...

java語言基礎 3 30

1 條件語句 if else if boolean expression statement1 else statement2 2 多分支語句 switch switch expression 表示式expression的返回值型別必須是這幾種型別之一 int,byte,char,short。cas...