Files
Data-Structure/Algorithm/DP-DynamicProgramming/UVA1347 旅行 Tour.cpp
2025-09-14 14:50:47 +08:00

30 lines
678 B
C++

#include <iostream>
#include <cmath>
#include <vector>
using namespace std;
double dist(const pair<int, int>& x, const pair<int, int>& y){
double r = sqrt( (y.first - x.first) * (y.first - x.first) + (y.second - x.second) * (y.second - x.second) );
return r;
}
int main(){
int n;
cin >> n;
vector<pair<int, int>> m(n);
for(int i = 0; i < n; i++){
cin >> m[i].first >> m[i].second;
}
vector<vector<int>> dp(n, vector<int>(n, 0));
int k = 0;
//dp[0][0] = 0;
int i = 0, j = 0;
while(dp[n - 1][n - 1] == 0){
k = max(i, j) + 1;
dp[i][k] = min(d[i][k], d[i][j] + dist(m[k], m[j]));
dp[k][j] = min(d[k][j], d[i][j] + dist(m[k], m[i]));
i++;j++;
}
return 0;
}