hdu 2224 The shortest path 双调欧几里得旅行商问题(动态规划)
来源:互联网 发布:图章制作软件下载 编辑:程序博客网 时间:2024/05/22 12:35
题目链接
题意:给出n个点的坐标,其x坐标单调递增。从x坐标最左点单调走到最右点,然后从x坐标最右点单调走到最左点,每个点只经过一次,求最短的路程。
这是双调欧几里得旅行商问题的模板题,给出网上大牛的一段算法学习资料——传送门。
#include <iostream>#include<cstdio>#include<cstring>#include<cmath>#define N 220#define INF 1e12using namespace std;double x[N],y[N],d[N][N],mp[N][N];int main(){ int n; while(~scanf("%d",&n)) { for(int i=1;i<=n;i++) scanf("%lf%lf",&x[i],&y[i]); for(int i=1;i<=n;i++) for(int j=1;j<=n;j++) { mp[i][j]=sqrt((x[i]-x[j])*(x[i]-x[j])+(y[i]-y[j])*(y[i]-y[j])); d[i][j]=INF; } d[1][1]=0; for(int i=1;i<=n;i++) for(int j=1;j<=i;j++) { if(i==j) { for(int k=1;k<j;k++) d[i][j]=min(d[i][j],d[i][k]+mp[k][j]); } if(i==j+1) { for(int k=1;k<=j;k++) d[i][j]=min(d[i][j],mp[k][i]+d[j][k]); } if(i>j+1) d[i][j]=d[i-1][j]+mp[i][i-1]; } printf("%.2lf\n",d[n][n]); }}
0 0
- hdu 2224 The shortest path 双调欧几里得旅行商问题(动态规划)
- HDU 2224 The shortest path(双调欧几里得旅行商问题)
- hdu 2224 The shortest path(双调欧几里得旅行商问题)
- HDU 2224 The shortest path 双调旅行商问题
- hduThe shortest path(双调欧几里得旅行商问题)
- 双调欧几里德旅行商问题--hdu 2224 The shortest path --- POJ 2677Tour
- HDU - 2224 The shortest path (双调欧几里德旅行商问题)
- hdu 2224 The shortest path 单向旅行商问题
- 双调欧几里得旅行商问题 hdu 2224 |hdu 4824 [动态规划]
- hdu 2224 The shortest path 题解(动态规划)
- 动态规划--双调欧几里得旅行商问题
- 动态规划--双调欧几里得旅行商问题
- 动态规划之双调欧几里得旅行商问题
- 【算法学习】双调欧几里得旅行商问题(动态规划)
- 【算法学习】双调欧几里得旅行商问题(动态规划)
- 【算法学习】双调欧几里得旅行商问题(动态规划)
- 【算法学习】双调欧几里得旅行商问题(动态规划)
- 经典动态规划算法-(TSP)双调欧几里得旅行商问题-hdu2224
- 在Fedora22中安装Skype
- Hibernate的常用配置
- 第五周 项目一 三角形类雏形(4)
- 稳定排序和不稳定排序
- Ubuntu 14.04.2解决域名解析慢的问题
- hdu 2224 The shortest path 双调欧几里得旅行商问题(动态规划)
- LeetCode 7 Reverse Integer
- MATLAB 教程
- Jmeter访问DB URL及driver
- C#将Excel数据表导入SQL数据库的两种方法
- hdu1561The more, The Better【树型dp 01背包】
- 增强for循环
- 第五周 项目一 三角形类雏形(5)
- java char转换成string string转换成char