The shortest path---hdu2224 && Tour---poj2677(旅行商问题)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2224
题意:平面上有n个点,问去的路只能从左到右,回的路只能从右到左的,且来回必须经过所有点的最小路径;
dp[i][j] 表示以j为起点,1为拐点 ,i为终点的最短路;
j < i-1 时,那么i-1这个点在来的路径上 必然等于dp[i-1][j] + dis[i-1][i] ;
j = i -1 ,那么i-1这个点在回的路径上,那么dp[i][j] = min(dp[k][j] + dis[k][j]) 1<=k < j; 因为dp[i][j] = dp[j][i], 所以dp[i][j] = min(dp[j][k] + dis[k][j]) 1<=k < j
- #include <stdio.h>
- #include <string.h>
- #include <math.h>
- #include <algorithm>
- #include <iostream>
- #include <time.h>
- #include <vector>
- #include <queue>
- typedef long long LL;
- using namespace std;
- const int N = ;
- const double eps = 1e-;
- const int INF = 0x3f3f3f3f;
- const int mod = ;
- const double PI = *atan(1.0);
- struct point
- {
- double x, y;
- }p[N];
- double Dist(point p1, point p2)
- {
- return sqrt((p1.x-p2.x)*(p1.x-p2.x)+(p1.y-p2.y)*(p1.y-p2.y));
- }
- int n;
- double dp[N][N];///表示以j为起点,1为拐点,i为终点,经历所有i到j之间的点;
- /*
- double DP()
- {
- dp[1][1] = 0;
- dp[2][1] = Dist(p[1], p[2]);
- for(int i=3; i<=n; i++)
- {
- for(int j=1; j<i-1; j++)
- dp[i][j] = dp[i-1][j] + Dist(p[i-1],p[i]);
- double Min = INF;
- for(int k=1; k<i-1; k++)
- Min = min(Min, dp[i-1][k] + Dist(p[k], p[i]));
- dp[i][i-1] = Min;
- }
- dp[n][n] = dp[n][n-1] + Dist(p[n-1], p[n]);
- return dp[n][n];
- }*/
- double DFS(int s, int e)
- {
- if(dp[s][e] != )
- return dp[s][e];
- if(s < e-)
- dp[s][e] = DFS(s, e-) + Dist(p[e-], p[e]);
- else
- {
- double Min = INF;
- for(int i=; i<e-; i++)
- Min = min(Min, DFS(i, s) + Dist(p[i], p[e]));
- dp[s][e] = Min;
- }
- return dp[s][e];
- }
- int main()
- {
- while(scanf("%d", &n) != EOF)
- {
- memset(dp, , sizeof(dp));
- for(int i=; i<=n; i++)
- scanf("%lf %lf", &p[i].x, &p[i].y);
- ///double ans = DP();
- dp[][] = ;
- dp[][] = dp[][] = Dist(p[], p[]);
- DFS(n-, n);
- dp[n][n] = dp[n-][n] + Dist(p[n-], p[n]);
- printf("%.2f\n", dp[n][n]);
- }
- return ;
- }
The shortest path---hdu2224 && Tour---poj2677(旅行商问题)的更多相关文章
- HDU 2224 The shortest path
The shortest path Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others ...
- hdu-----(2807)The Shortest Path(矩阵+Floyd)
The Shortest Path Time Limit: 4000/2000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others ...
- zoj 2760 How Many Shortest Path 最大流
题目链接:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=1760 Given a weighted directed graph ...
- The Shortest Path in Nya Graph
Problem Description This is a very easy problem, your task is just calculate el camino mas corto en ...
- hdu 3631 Shortest Path(Floyd)
题目链接:pid=3631" style="font-size:18px">http://acm.hdu.edu.cn/showproblem.php?pid=36 ...
- Shortest Path(思维,dfs)
Shortest Path Accepts: 40 Submissions: 610 Time Limit: 4000/2000 MS (Java/Others) Memory Limit: ...
- Shortest Path
Shortest Path Time Limit: 4000/2000 MS (Java/Others) Memory Limit: 131072/131072 K (Java/Others)T ...
- (中等) HDU 4725 The Shortest Path in Nya Graph,Dijkstra+加点。
Description This is a very easy problem, your task is just calculate el camino mas corto en un grafi ...
- 【ZOJ2760】How Many Shortest Path
How Many Shortest Path 标签: 网络流 描述 Given a weighted directed graph, we define the shortest path as th ...
- [Swift]LeetCode847. 访问所有节点的最短路径 | Shortest Path Visiting All Nodes
An undirected, connected graph of N nodes (labeled 0, 1, 2, ..., N-1) is given as graph. graph.lengt ...
随机推荐
- 51nod1256(乘法逆元)
题目链接: http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1256 题意:中文题诶~ 思路: M, N 互质, 求满足 K ...
- HBASE列族不能太多的真相 (一个table有几个列族就有几个 Store)
HRegionServer内部管理了一系列HRegion对象,每个HRegion对 应了table中的一个region,HRegion中由多 个HStore组成.每个HStore对应了Table中的一 ...
- c#去掉小数点后的无效0
decimal d = 0.0500m; d.ToString("0.##")就出来了 也可以这样 string.Format("{0:0.##}",d000) ...
- Light oj1031 Easy Game (区间dp)
题目链接:http://vjudge.net/contest/140891#problem/F A和B都足够聪明,只有我傻,想了好久才把代码和题意对应上[大哭] 代码: #include<ios ...
- Linux 安装tomcat
安装命令: yum install tomcat 安装完后默认: 安装路径: /usr/share/tomcat 执行命令(启动,停止, 重启): /etc/rc.d/init.d/tomcat 配置 ...
- iOS 设置1像素的UIView线
如果是代码实现,直接 在CGRectMake里把对应的参数设置为: 1.0/[UIScreenmainScreen].scale 即可. 如果是用xib实现,就需要将对应的限制拖一个I ...
- Python for Infomatics 第12章 网络编程六(译)
注:文章原文为Dr. Charles Severance 的 <Python for Informatics>.文中代码用3.4版改写,并在本机测试通过. 12.9 词汇表 Beautif ...
- mallmold开源商城系统网银在线chinabank支付插件
最近没事捣鼓项目,找了个轻型商城系统mallmold,用起来还觉的挺不错的,尤其是mallmold中文版,赞一个.中文版集成了大部分主流支付系统,但因是个人网站,没法获得对应的服务,最终选择了网银在线 ...
- 下载php扩展笔记
查找相关php的扩展网址https://pecl.php.net/index.php PECL 的全称是 The PHP Extension Community Library ,即PHP 扩展库.是 ...
- cxf webservice简单应用
Server端 server部署到一个端口号为80的tomcat中 CXFController.java package com.lwj.controller; import java.io.IOEx ...