UVa 1347 旅行
https://vjudge.net/problem/UVA-1347
思路:用d(i,j)表示第一个人走到i,第二个人走到j,还需要走多长的距离。在这里强制定义i>j,并且每次只能走到i+1。
状态转移方程为:d(i,j)=min(d(i+1,j)+dist(i,i+1),d(i+1,i)+dist(j,i+1));
仿照紫书“硬币问题”的代码,可以写成如下形式:
1 #include<iostream> 2 #include<cstring> 3 #include<algorithm> 4 #include<cmath> 5 using namespace std; 6 7 const int maxn=1000+5; 8 9 int n; 10 11 struct node 12 { 13 int x, y; 14 }a[maxn]; 15 16 double d[maxn][maxn]; //第一个走到i,第二个人走到j,d[i][j]表示此时还需要走多长的距离 17 18 19 double dist(int i,int j) 20 { 21 int dx = a[i].x - a[j].x; 22 int dy = a[i].y - a[j].y; 23 return hypot(dx, dy); //计算直角三角形的斜边 24 } 25 26 double dp(int i, int j) //i一定大于j 27 { 28 double& ans = d[i][j]; 29 if (ans > 0) return ans; 30 if (i == n - 1) 31 return ans=dist(i, n) + dist(j, n); 32 ans = min(dp(i + 1, j) + dist(i + 1, i), dp(i + 1, i) + dist(i + 1, j)); 33 return ans; 34 } 35 36 int main() 37 { 38 //freopen("D:\\txt.txt", "r", stdin); 39 while (cin >> n && n) 40 { 41 memset(d, 0, sizeof(d)); 42 for (int i = 1; i <= n; i++) 43 { 44 cin >> a[i].x >> a[i].y; 45 } 46 dp(2, 1); 47 double ans = dist(2, 1) + d[2][1]; 48 printf("%.2f\n", ans); 49 } 50 return 0; 51 }
转载于:https://www.cnblogs.com/zyb993963526/p/6358333.html
UVa 1347 旅行相关推荐
- 记忆化搜索,动态规划(旅行,uva 1347)
看到这题想起了一个网络流的题目,就是说找两条不相交的路,使得总花费最短,解决办法是拆点法. 这道题用网络流做边太多了,估计不行... #include<bits/stdc++.h> #de ...
- UVa 11100 旅行2007
https://vjudge.net/problem/UVA-11100 题意: 给定n个正整数,把它们划分成尽量少的严格递增序列,尽量均分. 思路: 因为必须严格递增,所以先统计每个数字出现的次数, ...
- uva 1347——Tour
题意:给定n个点的坐标,设计一条路线,从左边的点出发,走到最右边的点然后返回,每个点除了起点和终点最多只能经历一次,求其中的最短路径. 思路:dp,可以考虑成2个人从起点出发,然后到达终点,dp(i, ...
- 紫书《算法竞赛入门经典》
紫书<算法竞赛入门经典>题目一览 第3章 数组和字符串(例题) UVA 272 TEX Quotes UVA 10082 WERTYU UVA 401 Palindromes UVA 34 ...
- UVa Q10137: The Trip (旅行)
未经许可,请匆转载!!! 公司从去年开始注重各级别工程师在算法编码方面的功底,不仅经常组织TopCoder考试,还把考试等级作为每年绩效考评的重要参考(鄙人对此非常反感).不过反感归反感,但每次考试, ...
- 2022-2028年中国在线旅行预订市场投资分析及前景预测报告
[报告类型]产业研究 [出版时间]即时更新(交付时间约3个工作日) [发布机构]智研瞻产业研究院 [报告格式]PDF版 本报告介绍了在线旅行行业相关概述.中国在线旅行行业运行环境.分析了中国在线旅行行 ...
- LeetCode简单题之旅行终点站
题目 给你一份旅游线路图,该线路图中的旅行线路用数组 paths 表示,其中 paths[i] = [cityAi, cityBi] 表示该线路将会从 cityAi 直接前往 cityBi .请你找出 ...
- [搜索]UVa 129 困难的串
题意:将一个包含两个相邻的重复子串的子串,称为"容易的串",其他为"困难的串". 输入正整数n和l,输出由前l个字符组成的,字典序第n小的困难的串. 输入样例: ...
- uva 401.Palindromes
题目链接:https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem ...
最新文章
- linux shell 基础 使用日志与心得
- pytorch 训练过程acc_pytorch入门练手:一个简单的CNN模型
- java 继承的内存分配_图解Java继承内存分配
- iOS核心动画之CALayer-layer的创建
- Web前端知识体系精简
- 再生希尔伯特空间_向量、函数向量、再生核希尔伯特空间、核技巧
- python传文件给堡垒机上远程的另一个机器_如何用hive调度堡垒机上的python脚本...
- ui曲线谁是横坐标_【鼎阳硬件智库原创 | 测试测量】关于示波器的幅频特性曲线...
- expect的安装与使用
- 怎么用matlab进行博弈论计算,博弈论的Matlab算法包
- 消防物联网,为逆行英雄守住第一道生命线
- node 请求内网_Nodejs轻松搭建局域网服务器
- html怎么在手机打不开,手机的浏览器打不开网页怎么办
- 网吧服务器哪个好稳定,网吧服务器不应盲目追高新:够用稳定就好
- 关于苹果手机部分版本机型上传时卡住相册问题记录
- 最容易理解的LSM树--以示例讲解合并查找过程
- Android 短视频编辑开发之摄像头预览实时美颜(三)
- Google.cn刚上不去了
- LTM提示使大语言模型中的复杂推理成为可能
- LXD 2.0系列之一:LXD简介
热门文章
- 知云文献翻译_工具推荐 | 知云学术翻译,让外文文献阅读不再难
- python环境下载_Python for Windows 64位下载
- python成绩统计_python统计考试成绩排名
- 面向对象基础——static关键字和代码块的使用
- php中crypt怎么还原,PHP笔记 —— crypt方法
- dpkg命令_Linux常用命令大全(二)
- 【Flink】flink on yarn 并行度设置高导致任务失败
- 【算法】剑指 Offer 35. 复杂链表的复制 【重刷】
- 95-30-017-Channel-NioServerSocketChannel
- 【Kafka】Kafka 使用 Twitter 的 Bijection 类库实现 avro 的序列化与反序列化