题目描述

长江游艇俱乐部在长江上设置了 n 个游艇出租站 1,2,⋯,n。游客可在这些游艇出租站租用游艇,并在下游的任何一个游艇出租站归还游艇。游艇出租站 i 到游艇出租站 j 之间的租金为 r(i,j)(1≤i<j≤n)。试设计一个算法,计算出从游艇出租站 1 到游艇出租站 n 所需的最少租金。

输入格式

第一行中有一个正整数 n,表示有 n 个游艇出租站。接下来的n−1 行是一个半矩阵 r(i,j)(1≤i<j≤n)。

输出格式

输出计算出的从游艇出租站 1 到游艇出租站 n 所需的最少租金。

输入输出样例

输入 #1复制

3
5 15
7

输出 #1复制

12

说明/提示

0n≤200,保证计算过程中任何时刻数值都不超过 10^6。

法一 Dijkstra算法 算法复杂度O(n^2)n为顶点数

Code

#include<bits/stdc++.h>
using namespace std;
const int N=300;
int a[N][N];
int vis[N],d[N];
int n;
int main(){scanf("%d",&n);for(int i=1;i<=n;i++){for(int j=i+1;j<=n;j++){scanf("%d",a[i]+j);a[j][i]=a[i][j];}}fill(d+1,d+n+1,1e6);d[1]=0; while(1){int u=-1;for(int i=1;i<=n;i++){if(!vis[i]&&(u==-1||d[u]>d[i]))u=i;}if(u==-1)break;vis[u]=1;for(int i=1;i<=n;i++)if(u<i)//因为只能是较上游到较下游,所以u必须<i 才能更新d[i]d[i]=min(d[i],d[u]+a[u][i]);}printf("%d",d[n]);
return 0;
}

法二 dp法

Code

#include<iostream>
#include<cmath>
using namespace std;
int a[201][201],i,j,n,dp[201];
int main(){cin>>n;for(i=1;i<n;i++){for(j=i+1;j<=n;j++)cin>>a[i][j];dp[i]=1e9;//初始化数组dp}for(i=n-1;i>=1;i--)//跑n上流的中转站for(j=i+1;j<=n;j++)//跑i下流的所有中转站dp[i]=min(dp[i],a[i][j]+dp[j]);//记录cout<<dp[1];return 0;
}

洛谷 租用游艇 C++ Dijkstra 单源最短路/dp相关推荐

  1. 洛谷_P3371 【模板】单源最短路径(弱化版)_dijkstra_堆优化

    洛谷_P3371 [模板]单源最短路径(弱化版)_dijkstra_堆优化 // dijkstra最短路算法_堆优化 #include<bits/stdc++.h> using names ...

  2. 洛谷 P3371 【模板】单源最短路径(弱化版)【最短路】【spfa】

    洛谷 P3371 [模板]单源最短路径(弱化版) 一.题目链接 二.题目分析 (一)算法标签 (二)解题思路 三.AC代码 四.其它题解 一.题目链接 洛谷 P3371 [模板]单源最短路径(弱化版) ...

  3. 模板:Prime最小生成树堆优化 + Dijkstra单源最短路堆优化

    Dijkstra 单源最短路堆优化 #include<bits/stdc++.h> using namespace std; typedef pair<int, int> PI ...

  4. 【HDU - 2112】 HDU Today(dijkstra单源最短路 + map转换)

    题干: HDU Today Time Limit : 15000/5000ms (Java/Other)   Memory Limit : 32768/32768K (Java/Other) Tota ...

  5. l洛谷P4779 【模板】单源最短路径(标准版)(dijkstra)

    题目描述 给定一个 NN 个点,MM 条有向边的带非负权图,请你计算从 SS 出发,到每个点的距离. 数据保证你能从 SS 出发到任意点. 输入格式 第一行为三个正整数 N, M, SN,M,S. 第 ...

  6. 【POJ - 1502】MPI Maelstrom(Dijkstra单源最短路--求一点到其余个点的最小值的最大值)

    题干: BIT has recently taken delivery of their new supercomputer, a 32 processor Apollo Odyssey distri ...

  7. *【51nod - 1459】迷宫游戏(记录双向权值的Dijkstra单源最短路)

    题干: 你来到一个迷宫前.该迷宫由若干个房间组成,每个房间都有一个得分,第一次进入这个房间,你就可以得到这个分数.还有若干双向道路连结这些房间,你沿着这些道路从一个房间走到另外一个房间需要一些时间.游 ...

  8. 单源最短路和多源最短路

    目录 一. 迪杰斯特拉(Dijkstra,单源最短路) 特点: 二. 弗洛伊德(Floyd,多源最短路) 算法过程 特点 一. 迪杰斯特拉(Dijkstra,单源最短路) Dijkstra (迪杰斯特 ...

  9. CSP认证201609-4 交通规划[C++题解]:最短路径树、dijkstra求单源最短路、递推思想

    题目分析 来源:acwing 分析: 这题是最短路树.保持原图中所有点到根结点的最短距离不变,然后在原图中选择一些边,使所有点连通的最短路是多长. 最短路径树,是一种使用最短路径算法生成的数据结构树. ...

最新文章

  1. 使用计算机辐射最大,计算机辐射的主要来源及其对人体的危害
  2. mysql 安装 se_mysql的安装过程
  3. git只合并某一个分支的某个commit
  4. 图解TCP数据报结构以及三次握手(非常详细)
  5. navicat for mysql 如何将表ID排序重1开始?
  6. 智慧交通day02-车流量检测实现12:基于yoloV3的目标检测
  7. java后台面试题整理
  8. springboot项目访问不到controller方法。
  9. 架构设计(2)---分布式架构的演进过程
  10. 笔记本linux版刚买回来怎么检查,新电脑买回来要怎么做
  11. Java开发 明华usbkey_v3 明华二次开发包,usbkey 内有很多demo程序。 USB develop 238万源代码下载- www.pudn.com...
  12. BIP63(隐身地址)
  13. Git修改用户名和密码
  14. 码农造“神盘”:互联网人20年买房故事
  15. 用户界面、交互体验设计优秀的产品
  16. 人工智能、机器学习与深度学习的区别与联系
  17. 计算机考试记不住题目,驾考科目一口诀,科一题目太多记不住?快来看看这些技巧...
  18. win10下的dos基本命令
  19. 【初识C语言】如何写出第一个C语言代码
  20. JSP | 简易购物车的实现

热门文章

  1. Ruby for Rails 最佳实践十六
  2. 小米平板4刷入twrp
  3. 【转】 机器学习入门——浅谈神经网络
  4. Postman测试http请求返回415状态码的解决
  5. 基于MATLAB手写体数字识别程序设计
  6. 决定局域网特性的三要素是什么
  7. M415步进电机驱动器的使用(C51)
  8. 互联网日报 | 吉利汽车完成科创板上市辅导;华为开发者大会9月10日举行;贵州茅台整治“年份酒”乱象...
  9. java 模拟火车站售票系统_模拟售票系统java编程
  10. docker一键部署springboot项目(三)