算法思路

只能说是一道很典型的Dijkstra算法解决的题目,因为点和边的权值给定了,相当于给定了邻接矩阵,本题就是求给定起点和终点的最短路径。Dijkstra具体实现的方法很多,但都大同小异。主要是 求邻接矩阵-找每次到起点的最小距离的点-以此点更新其他点到起点的最小距离。

在此给出一种写法供参考

#include<iostream>
#include <string.h>
#include<cstring>
#include<limits.h>
#include<vector>
#include<unordered_map>
#include<map>
#include<queue>
using namespace std;typedef pair<int,int> PII;
int main(){int n;cin>>n;const int inf=INT_MAX/2;vector<vector<PII>> g(n+1);for(int i=1;i<=n;i++){for(int j=i+1;j<=n;j++){int weight;cin>>weight;g[i].emplace_back(weight,j);//构造邻接矩阵 也可用三元组构造 array<int,3>  }}priority_queue<PII,vector<PII>,greater<PII>> q;q.emplace(0,1);// weight,indexvector<int> dist(n+1,inf);vector<int> used(n+1,0);dist[1]=0;while(!q.empty()){auto [d,i]=q.top();q.pop();//auto后面不要加引用,具体为何未知if(used[i]) continue; //关键,否则相同i会进入更新了dist[i];该条件也可改成 if(d>dist[i]) continue; used[i]=1;dist[i]=d;//优先队列保证最小距离for(auto& [dnext,next]:g[i]){if(!used[next] && dist[i]+dnext<dist[next]){dist[next]=dist[i]+dnext;q.emplace(dist[next],next);//q.push({dist[next],next});也对}} }cout<<dist[n];
}

坐缆车题解-dijkstra相关推荐

  1. 【三次过】Lintcode 1386. 坐缆车

    小九来到某地坐缆车,他的钱只能坐一次缆车,所以他想尽量延长坐缆车的时间.已知缆车站分布可以看作是一个n x m的矩阵,每个格点代表缆车站的高度.他可以从任一站点开始坐缆车,缆车只能从矮的高度移动到高的 ...

  2. 【大话云原生】kubernetes灰度发布篇-从步行到坐缆车的自动化服务升级

    看过很多关于云原生的文章,要么云山雾罩,要么曲高和寡. 所以笔者就有了写<大话云原生>系列文章的想法,期望用最通俗.简单的语言.方便记忆的场景来说明:云原生生态系统内的组成及应用关系. 文 ...

  3. PAT甲级1072 Gas Station (30 分):[C++题解]dijkstra算法、最短路

    文章目录 题目分析 题目来源 题目分析 来源:acwing 分析: 所有的dist[ ]都≤Ds:最小的dist[ ]最大; dist[ ] 总和最大. 由于加油站是字符,为了简单起见,将m个加油站编 ...

  4. PAT甲级1087 All Roads Lead to Rome (30分):[C++题解]dijkstra求单源最短路综合、最短路条数、保存路径

    文章目录 题目分析 题目链接 题目分析 来源:acwing 分析: 首先这是一道dijkstra算法求最短路的题目,不过此题较为复杂.首先需要将字符串城市名映射成数字,这里使用hash table 名 ...

  5. PAT甲级1030 Travel Plan (30分):[C++题解]dijkstra求单源最短路、保存路径

    文章目录 题目分析 题目链接 题目分析 来源:PAT网站 分析 dijkstra模板默写过来,然后多了一个保存路径,使用数组pre[N]记录最短路上每个点的前驱,通过pre数组保存到vector中 v ...

  6. PAT甲级1003 Emergency:[C++题解]dijkstra求最短路、最短路条数

    文章目录 题目分析 题目链接 题目分析 分析:求单源最短路,使用dijkstra()算法. 最短路的条数,和最短路中 人数最多的一条,输出最多人数. 本题点比较少,使用邻接矩阵d[N][N]来存. a ...

  7. 坐火车(dijkstra

    题目题目 #include<bits/stdc++.h> using namespace std; const int N=2e6+9; #define int long long typ ...

  8. NC234866 缆车 (思维,图论,最近公共祖先)

    传送门:登录-专业IT笔试面试备考平台_牛客网 题目描述 牛妹:"冬天到了,我们一起去坐缆车吧!" 景区有  n个景点,入口在编号为 1 的景点的位置,景区内有  单向缆车,从编号 ...

  9. macappstore登不上去_武功山观星归来,缆车登顶,不徒步攻略!

    从武功山归来已经半个月,一直懒得整理攻略和照片,因为本次行程很失望. 本是冲着英仙座流星雨去的,结果由于天气原因,不仅流星雨没看成,甚至连星星都没看清. Anyway,还是把心得写一下,留给后面想去的 ...

最新文章

  1. tensorflow1.0中的改善
  2. c++ float 转string
  3. DL-4 深度学习中的batch_size、epoch、iteration的区别
  4. 若依(基于SpringBoot的权限管理系统)集成MobileIMSDK实现IM服务端的搭建
  5. Java 打印 99 乘法表
  6. 苏宁易购:2021年度预计商品采购总金额增至不超120亿元
  7. 苹果经典复古彩虹Logo回归?这效果图 看了只想告辞!
  8. python进程与线程_Python进程与线程知识
  9. 服务器迁移虚拟化实施方案,虚拟化实施方案
  10. requests请求报字符编码异常信息
  11. Android安全开发之WebView中的地雷
  12. 程序员须掌握的大数据分析核心技术
  13. 微型计算机原理与接口技术第五版pdf,微型计算机原理与接口技术(第5版)
  14. Dagger2入门到放弃
  15. java无法验证证书_如何解决“证书无效,不能用于验证本网站的身份”错误?...
  16. 计算机硬盘加密的原理,一种计算机硬盘加密方法及装置
  17. 巴拿赫空间的基本概念
  18. 计算机中的同步和异步
  19. jq 移动端网页分享功能_js实现QQ、微信、新浪微博分享功能
  20. python 调用Google Translate API进行翻译

热门文章

  1. java实现音乐播放器(调整显示音量大小、调整进度、图片切换)
  2. 【考研·数据结构】408真题 (2012年42题) 寻找第一个公共后缀的位置】
  3. 【USACO 2009 JAN GOLD】安全路径
  4. 2022面试题CSS
  5. Spring Cloud Document翻译(二)--Spring Cloud Commons
  6. android SystemUI导航栏和状态栏-2020-12-02
  7. cxLookupCombobox实现两列模糊查询
  8. SQL注入之注入原理
  9. XJOI 1145 选班长
  10. 易百教程Oracle,SQLite快速入门教程