uva1347Tour
2024-05-14 02:45:45
题意:给定n个点,将所有点用一条线连起来,使得线最短。
分析:用d[i][j]代表走过了1~max(i,j)之间的点。dist表示两点间的距离。作者的代码可谓神仙代码,细看才发现逻辑的奥妙。
#include<iostream>
#include<string.h>
#include<sstream>
#include<set>
#include<algorithm>
#include<vector>
#include<map>
#include<queue>
#include<math.h>
using namespace std;
const int maxn = 50 + 5;
double x[maxn], y[maxn], dist[maxn][maxn], d[maxn][maxn];//离散化
int main()
{int n;while (cin >> n&&n) {for (int i = 1; i <= n; i++) {cin >> x[i] >> y[i];}for (int i = 1; i <= n; i++)for (int j = 1; j <= n; j++)dist[i][j] = sqrt((x[i] - x[j])*(x[i] - x[j]) + (y[i] - y[j])*(y[i] - y[j]));for(int i=n-1;i>=2;i--)for (int j = 1; j < i; j++) {if (i == n - 1)d[i][j] = dist[i][n] + dist[j][n];else d[i][j] = min(dist[i + 1][i] + d[i + 1][j], dist[j][i + 1] + d[i + 1][i]);//强制新加入的点小于被连接的点}printf("%.2lf\n", dist[1][2] + d[2][1]);}return 0;
}
uva1347Tour相关推荐
最新文章
- 解决外部符号错误:_main,_WinMain@16,__beginthreadex
- vue 富文本存储_Vue富文本编辑器
- mysql主从同步默认延迟_减少mysql主从数据同步延迟问题的详解
- opcclient远程连接opc服务器_软件 | 服务器远程连接软件MobaXterm
- 从fastjson的TypeReference用法,推导如何实现泛型反射
- 通俗易懂,什么是.NET Core以及.NET Core能做什么
- centos下利用httpd搭建http服务器方法
- 前端学习(3110):react-hello-函数式组件
- 读懂这本书,才算读懂阿里大数据
- matlab模拟调制过程,模拟信号的调制方式有哪三种?调制与解调是个啥过程
- 【算法导论】【排序】—— 计数排序(counting sort)
- 系统学习机器学习之正则化(一)
- 【一天一个C++小知识】005. C++中的句柄类(智能指针)
- paip.提升稳定性---c3p0数据库连接池不能取到连接An attempt by a client to checkout a Connection has timed out
- 交换机基本原理与配置(包含ensp交换机配置命令)
- android的UI性能优化
- Ubuntu系统Vscode安装以及配置C++环境(一条龙服务)
- 喝java茶,我为你泡一杯花茶
- 你要找的cocos面试答案都在这里了!
- 六款好用的Mac最流行的开发工具,程序员必看~