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 旅行相关推荐

  1. 记忆化搜索,动态规划(旅行,uva 1347)

    看到这题想起了一个网络流的题目,就是说找两条不相交的路,使得总花费最短,解决办法是拆点法. 这道题用网络流做边太多了,估计不行... #include<bits/stdc++.h> #de ...

  2. UVa 11100 旅行2007

    https://vjudge.net/problem/UVA-11100 题意: 给定n个正整数,把它们划分成尽量少的严格递增序列,尽量均分. 思路: 因为必须严格递增,所以先统计每个数字出现的次数, ...

  3. uva 1347——Tour

    题意:给定n个点的坐标,设计一条路线,从左边的点出发,走到最右边的点然后返回,每个点除了起点和终点最多只能经历一次,求其中的最短路径. 思路:dp,可以考虑成2个人从起点出发,然后到达终点,dp(i, ...

  4. 紫书《算法竞赛入门经典》

    紫书<算法竞赛入门经典>题目一览 第3章 数组和字符串(例题) UVA 272 TEX Quotes UVA 10082 WERTYU UVA 401 Palindromes UVA 34 ...

  5. UVa Q10137: The Trip (旅行)

    未经许可,请匆转载!!! 公司从去年开始注重各级别工程师在算法编码方面的功底,不仅经常组织TopCoder考试,还把考试等级作为每年绩效考评的重要参考(鄙人对此非常反感).不过反感归反感,但每次考试, ...

  6. 2022-2028年中国在线旅行预订市场投资分析及前景预测报告

    [报告类型]产业研究 [出版时间]即时更新(交付时间约3个工作日) [发布机构]智研瞻产业研究院 [报告格式]PDF版 本报告介绍了在线旅行行业相关概述.中国在线旅行行业运行环境.分析了中国在线旅行行 ...

  7. LeetCode简单题之旅行终点站

    题目 给你一份旅游线路图,该线路图中的旅行线路用数组 paths 表示,其中 paths[i] = [cityAi, cityBi] 表示该线路将会从 cityAi 直接前往 cityBi .请你找出 ...

  8. [搜索]UVa 129 困难的串

    题意:将一个包含两个相邻的重复子串的子串,称为"容易的串",其他为"困难的串". 输入正整数n和l,输出由前l个字符组成的,字典序第n小的困难的串. 输入样例: ...

  9. uva 401.Palindromes

    题目链接:https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem ...

最新文章

  1. linux shell 基础 使用日志与心得
  2. pytorch 训练过程acc_pytorch入门练手:一个简单的CNN模型
  3. java 继承的内存分配_图解Java继承内存分配
  4. iOS核心动画之CALayer-layer的创建
  5. Web前端知识体系精简
  6. 再生希尔伯特空间_向量、函数向量、再生核希尔伯特空间、核技巧
  7. python传文件给堡垒机上远程的另一个机器_如何用hive调度堡垒机上的python脚本...
  8. ui曲线谁是横坐标_【鼎阳硬件智库原创 | 测试测量】关于示波器的幅频特性曲线...
  9. expect的安装与使用
  10. 怎么用matlab进行博弈论计算,博弈论的Matlab算法包
  11. 消防物联网,为逆行英雄守住第一道生命线
  12. node 请求内网_Nodejs轻松搭建局域网服务器
  13. html怎么在手机打不开,手机的浏览器打不开网页怎么办
  14. 网吧服务器哪个好稳定,网吧服务器不应盲目追高新:够用稳定就好
  15. 关于苹果手机部分版本机型上传时卡住相册问题记录
  16. 最容易理解的LSM树--以示例讲解合并查找过程
  17. Android 短视频编辑开发之摄像头预览实时美颜(三)
  18. Google.cn刚上不去了
  19. LTM提示使大语言模型中的复杂推理成为可能
  20. LXD 2.0系列之一:LXD简介

热门文章

  1. 知云文献翻译_工具推荐 | 知云学术翻译,让外文文献阅读不再难
  2. python环境下载_Python for Windows 64位下载
  3. python成绩统计_python统计考试成绩排名
  4. 面向对象基础——static关键字和代码块的使用
  5. php中crypt怎么还原,PHP笔记 —— crypt方法
  6. dpkg命令_Linux常用命令大全(二)
  7. 【Flink】flink on yarn 并行度设置高导致任务失败
  8. 【算法】剑指 Offer 35. 复杂链表的复制 【重刷】
  9. 95-30-017-Channel-NioServerSocketChannel
  10. 【Kafka】Kafka 使用 Twitter 的 Bijection 类库实现 avro 的序列化与反序列化