题面链接

https://www.acwing.com/problem/content/851/

思路

我们从源点开始找,然后我们将这个点所有指向的点,然后以这个点为中心点看是否能更新其距离,最多更新n次后就能将单元最短路求出

代码


#include<bits/stdc++.h>
using namespace std;
//----------------自定义部分----------------
#define ll long long
#define mod 1000000007
#define endl "\n"
#define PII pair<int,int>
#define INF 0x3f3f3f3fint dx[4]={0,-1,0,1},dy[4]={-1,0,1,0};ll ksm(ll a,ll b) {ll ans = 1;for(;b;b>>=1LL) {if(b & 1) ans = ans * a % mod;a = a * a % mod;}return ans;
}ll lowbit(ll x){return -x & x;}const int N = 5e2+10;
//----------------自定义部分----------------
int n,m,q,a[N];
int mp[N][N];
int dis[N],vis[N];int diji(){memset(dis,0x3f,sizeof dis);dis[1] = 0;for(int i = 1;i <= n; ++i) {int t = -1;for(int j = 1;j <= n; ++j) {//找到一个可以更新的点if(!vis[j] && (t == -1 || dis[t] > dis[j])){t = j;}}vis[t] = true;for(int j = 1;j <= n; ++j){dis[j] = min(dis[j],dis[t] + mp[t][j]);}}if(dis[n] == INF) return -1;return dis[n];
}void slove(){cout<<diji()<<endl;
}int main()
{std::ios::sync_with_stdio(false);std::cin.tie(nullptr);std::cout.tie(nullptr);cin>>n>>m;int u,v,w;memset(mp,0x3f,sizeof mp);for(int i = 0;i <= n; ++i) mp[i][i] = 0;for(int i = 1;i <= m; ++i) {cin>>u>>v>>w;mp[u][v] = min(mp[u][v],w);}slove();return 0;
}

AcWing 849. Dijkstra求最短路 I(稠密图Dijkstra模板)相关推荐

  1. AcWing 850. Dijkstra求最短路 II(堆优化dijkstra)

    题目链接 : 点击查看 题目描述 : 给定一个 n 个点 m 条边的有向图,图中可能存在重边和自环,所有边权均为非负值. 请你求出 1 号点到 n 号点的最短距离,如果无法从 1 号点走到 n 号点, ...

  2. ~~朴素dijkstra算法 (搜索与图论)(附模板题AcWing 849. Dijkstra求最短路 I)

    模板 时间复杂是 O(n2+m), n表示点数,m 表示边数 int g[N][N]; // 存储每条边 int dist[N]; // 存储1号点到每个点的最短距离 bool st[N]; // 存 ...

  3. AcWing 850. Dijkstra求最短路 II

    原题链接:AcWing 850. Dijkstra求最短路 II 给定一个 n 个点 m 条边的有向图,图中可能存在 重边 和 自环 ,所有边权均为 非负值 . 请你求出 1 号点到 n 号点的最短距 ...

  4. AcWing 850. Dijkstra求最短路 II【最短路】【堆优化版Dijkstra】

    AcWing 850. Dijkstra求最短路 II 一.题目链接 二.题目分析 (一)算法标签 (二)解题思路 三.AC代码 四.其它题解 一.题目链接 AcWing 850. Dijkstra求 ...

  5. 堆优化版dijkstra算法:AcWing 850. Dijkstra求最短路 II

    堆优化版dijkstra算法分析: 朴素版dijkstra的时间复杂度为O(n^2),主要瓶颈在于第1步的寻找全局最小值的过程. 可以用小根堆(C++STL priority_queue)对dist数 ...

  6. Dijkstra AcWing 850. Dijkstra求最短路 II

    Dijkstra AcWing 850. Dijkstra求最短路 II 原题链接 AcWing 850. Dijkstra求最短路 II 算法标签 最短路 Dijkstra 思路 图片摘自该题解 图 ...

  7. 图论入门(一),拓扑排序生成拓扑序列与Dijkstra求最短路

    基本知识 Dijkstra基本思想 拓扑排序思维视频讲解 848:有向图的拓扑排序 题目链接 题解: #include<bits/stdc++.h> using namespace std ...

  8. Floyd AcWing 854. Floyd求最短路

    Floyd AcWing 854. Floyd求最短路 原题链接 AcWing 854. Floyd求最短路 算法标签 最短路 Floyd 思路 代码 #include<bits/stdc++. ...

  9. acwing 850. Dijkstra求最短路(二)堆优化版本

    给定一个 n 个点 m 条边的有向图,图中可能存在重边和自环,所有边权均为非负值. 请你求出 1 号点到 n 号点的最短距离,如果无法从 1 号点走到 n 号点,则输出 −1. 输入格式 第一行包含整 ...

  10. 算法提高课-图论-单源最短路的建图方式-AcWing 920. 最优乘车:bfs求最短路、建图

    题目分析 来源:acwing 分析: 本题难在抽象建图上,这里采用的建图方式是:同一条公交线路上,前面的站点都可以连一条有向边到其后面的站点,且边权都为1. 由于边权都是1,可以用bfs来求最短路. ...

最新文章

  1. linux中的vp命令,Linux基础回顾之基础命令五(用户及组)
  2. NOIP模拟题——神秘大门
  3. CCNA笔记之第二十节:RIP协议(大实验4)
  4. OpenCV-绘制圆端矩形(药丸)
  5. 074-enable-right-click
  6. 图新地球点云大师:点云数据三维可视化管理及等高线提取
  7. linux 查看链接文件,Linux下的链接文件详解
  8. MWORKS应用案例 | 基于Modelica的射流管式电液伺服阀的建模仿真
  9. 利用神经网络识别12306验证码——(五)训练模型
  10. 用Html实现世纪佳缘交友注册页面是什么体验?
  11. D3D11和D3D12共享资源
  12. Docker安装java环境并部署jar包运行
  13. 手推SVM及SMO算法实现
  14. 光纤收发器的原理及应用_光纤收发器知识讲解(一)
  15. 陕西师范大学公费师范生计算机,陕西师范大学公费师范生2019年录取分数线-陕师大公费师范专业...
  16. 判断两个链表是否交叉,并求出交叉点
  17. js 金钱格式化(money)
  18. uni_app的axios封装
  19. 检测网站速度和安全性的方法
  20. add1顶部菜单html,menuStrip1动态添加菜单及快捷键

热门文章

  1. 一行shell解决Mac文件乱码问题
  2. LabelSmooth
  3. 正则表达式的学习使用
  4. Desktop imags
  5. atitit.薄伽梵歌overview  attilax 读后感
  6. 动态调用Webservice 支持Soapheader身份验证(转)
  7. 微软Silverlight 3正式版
  8. 映射网络驱动器 net use
  9. Cocos2d入门--2-- 三角函数的应用
  10. EF – 4.CRUD与事务