题目链接:uva 1347 - Tour
题目大意:给出n个点,确定一条连接各点的最短闭合旅程的问题。
解题思路:dp[i][j]表示说从i联通到1,再从1联通到j的距离。
dp[i][j] = dp[i-1][j] + dis(i,i-1);
dp[i][i-1] = min (dp[i][i-1], dp[i-1][j] + dis(i, j));
双调欧几里得旅行商问题
#include <stdio.h>
#include <string.h>
#include <math.h>
#include <algorithm>
using namespace std;
const int N = 105;
const double INF = 0x3f3f3f3f3f3f3f3f;
int n;
double x[N], y[N], dp[N][N];
inline double dis (int a, int b) {
return sqrt((x[a]-x[b])*(x[a]-x[b]) + (y[a]-y[b])*(y[a]-y[b]));
}
void init () {
for (int i = 1; i <= n; i++)
scanf("%lf%lf", &x[i], &y[i]);
memset(dp, 0, sizeof(dp));
dp[2][1] = dis(1, 2);
}
double solve () {
for (int i = 3; i <= n; i++) {
dp[i][i-1] = INF;
for (int j = 1; j < i-1; j++) {
dp[i][i-1] = min(dp[i][i-1], dp[i-1][j] + dis(i, j));
dp[i][j] = dp[i-1][j] + dis(i, i-1);
}
}
double ans = INF;
for (int i = 1; i < n; i++)
ans = min(ans, dp[n][i] + dis(n, i));
return ans;
}
int main () {
while (scanf("%d", &n) == 1) {
init ();
printf("%.2lf\n", solve ());
}
return 0;
}
分享到:
相关推荐
算法导论15-1思考题:双调欧几里得旅行商问题,时间复杂度O(N^2)
实现3-12双调旅行售货员问题.cpp
安良ET2-41 双调型限时继电器说明书pdf,安良ET2-41 双调型限时继电器说明书
最短双调 TSP 回路是欧氏旅行售货员问题的特殊情况。平面上 n 个点的双调 TSP 回路是从最左点开始,严格地由左至右直到最右点,然后严格地由右至左直至最左点,且连接每一个点恰好一次的一条闭合回路。
行业文档-设计装置-双调双接头笔记本散热器.zip
本文利用声光调Q和染料调Q各自的特点,提出了声光-染料双调Q理论。文中对双调Q激光器的输出特性随激光器各参量的变化关系进行了研究,为实现在合理的参数选择下的最佳输出提供了可靠的理论依据,并给出了与理论相符的...
电子政务-双调式直滑电位器.zip
非线性临界P-双调和抛物型方程解的存在性,王永达,韩军强,文中研究了非线性临界p-双调和抛物型方程的初边值问题。作者分别在次临界,临界和超临界情形讨论了解的整体存在性和爆破性。本文�
安良 ATDV-N系列双调型限时继电器详细资料zip,安良 ATDV-N系列双调型限时继电器详细资料
电子政务-双调式直滑电位器[1].zip
行业资料-电子功用-全液控双调电液随动系统的介绍分析.rar
电子政务-全液控双调电液随动装置.zip
大数据-算法
能够使用C++语言编写出一个程序,这个程序能够实现一个功能,就是在网络 上找一条从 点出发,经过 各一次最后返回 的最短路线和最短路程。就是要求解决一个TSP问题。
讨论了N中有界光滑区域上的一类类p-双调和方程的无穷多解问题,其中2p >N,非线性项不必具有奇对称性.利用Ricceri的一个变分原理,得到了无穷多解的存在性,进而证明了当非线性项在零点(无穷远点)振荡时,无穷多解按范数...
Bitonic旅行路线问题是欧几里得旅行商问题的简化,这种旅行路线从最左边开始,严格地由左至右到最右边的点,然后再严格的由右至左回到开始点,求最短的路径长度。
大数据-算法
应用Morse理论,研究Navier边值的p-双调和问题的非平凡解的存在性.研究表明:问题的非线性项是超线性的,但不满足通常的Ambrosetti- Rabinowitz (AR)条件.在新条件下,计算出了无穷远处的临界群.
CPU串行的BitonicSort双调排序
双调排序算法Verilog代码,包括仿真结果,适用于FPGA设计中对数值的排序,排序耗费硬件复杂度和时间复杂度随着排序序列中数值个数的上升而上升