UVa1347 Tour
来源:互联网 发布:nginx重启命令 编辑:程序博客网 时间:2024/05/22 09:05
看着紫书的分析才下的手。。想象成两个人以不同的路从起点走到终点。dp(i,j)表示1~max(i,j)全部走过,两人位置分别是i和j,还需要走多长的距离。规定i>j,i和j不特指某一个人,指的是当前在前面和后面的人。
#include <iostream> #include <stdio.h> #include <cmath> #include <algorithm> #include <iomanip> #include <cstdlib> #include <string> #include <memory.h> #include <vector> #include <queue> #include <stack> #include <map> #include <set> #include <ctype.h> #define INF 1000000 #define ll long long using namespace std; struct point{int x;int y;};point pt[100];int n;double dp[100][100];double dist2(point p1,point p2){return sqrt((double)(p1.x-p2.x)*(p1.x-p2.x)+(p1.y-p2.y)*(p1.y-p2.y));}double fun(int i,int j){if(dp[i][j]>0)return dp[i][j];if(i==n){dp[i][j]=dist2(pt[j],pt[n]);return dp[i][j];}double re=min(fun(i+1,j)+dist2(pt[i],pt[i+1]),fun(i+1,i)+dist2(pt[j],pt[i+1]));dp[i][j]=re;return re;}int main(){while(cin>>n){for(int i=0;i<=n;i++)for(int j=0;j<=n;j++)dp[i][j]=-1.0;for(int i=1;i<=n;i++){cin>>pt[i].x>>pt[i].y;}printf("%.2lf\n",fun(1,1));}return 0;}
0 0
- UVa1347 Tour
- uva1347 tour
- UVa1347 - Tour
- UVA1347 - Tour
- UVA1347 Tour
- uva1347 tour
- uva1347 Tour
- UVa1347 Tour
- uva1347 - Tour DP
- UVA1347 Tour (DP)
- UVA1347 Tour(DP)
- 【紫书】(UVa1347)Tour
- 解题报告 之 UVA1347 Tour
- UVA1347---Tour(dp,双调TSP)
- UVa1347/poj2677 - C - Tour(DP)
- UVA1347 - Tour (DAG上的DP)
- Uva1347
- UVA1347
- 科学艺术服装及纺织品设计
- 【UVA】1220-Party at Hali-Bula?(动态规划,树)
- ./configure参数详解
- Hibernate_15_缓存的使用
- 赫尔利背包
- UVa1347 Tour
- 怎样去掉Eclipse中的Js错误提示
- C++设计模式之原型模式(一)
- 记一次面试经历
- 从输入网址到显示网页的全过程分析
- ubuntu下nagios监控环境搭建
- 关于php中使用odbc或者pdo连接sqlserver时如果查询条件中存在中文会导致查询失败的问题
- 进程控制
- Toast分析——实现自己的Toast