AcWing 849. Dijkstra求最短路 I(稠密图Dijkstra模板)
题面链接
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模板)相关推荐
- AcWing 850. Dijkstra求最短路 II(堆优化dijkstra)
题目链接 : 点击查看 题目描述 : 给定一个 n 个点 m 条边的有向图,图中可能存在重边和自环,所有边权均为非负值. 请你求出 1 号点到 n 号点的最短距离,如果无法从 1 号点走到 n 号点, ...
- ~~朴素dijkstra算法 (搜索与图论)(附模板题AcWing 849. Dijkstra求最短路 I)
模板 时间复杂是 O(n2+m), n表示点数,m 表示边数 int g[N][N]; // 存储每条边 int dist[N]; // 存储1号点到每个点的最短距离 bool st[N]; // 存 ...
- AcWing 850. Dijkstra求最短路 II
原题链接:AcWing 850. Dijkstra求最短路 II 给定一个 n 个点 m 条边的有向图,图中可能存在 重边 和 自环 ,所有边权均为 非负值 . 请你求出 1 号点到 n 号点的最短距 ...
- AcWing 850. Dijkstra求最短路 II【最短路】【堆优化版Dijkstra】
AcWing 850. Dijkstra求最短路 II 一.题目链接 二.题目分析 (一)算法标签 (二)解题思路 三.AC代码 四.其它题解 一.题目链接 AcWing 850. Dijkstra求 ...
- 堆优化版dijkstra算法:AcWing 850. Dijkstra求最短路 II
堆优化版dijkstra算法分析: 朴素版dijkstra的时间复杂度为O(n^2),主要瓶颈在于第1步的寻找全局最小值的过程. 可以用小根堆(C++STL priority_queue)对dist数 ...
- Dijkstra AcWing 850. Dijkstra求最短路 II
Dijkstra AcWing 850. Dijkstra求最短路 II 原题链接 AcWing 850. Dijkstra求最短路 II 算法标签 最短路 Dijkstra 思路 图片摘自该题解 图 ...
- 图论入门(一),拓扑排序生成拓扑序列与Dijkstra求最短路
基本知识 Dijkstra基本思想 拓扑排序思维视频讲解 848:有向图的拓扑排序 题目链接 题解: #include<bits/stdc++.h> using namespace std ...
- Floyd AcWing 854. Floyd求最短路
Floyd AcWing 854. Floyd求最短路 原题链接 AcWing 854. Floyd求最短路 算法标签 最短路 Floyd 思路 代码 #include<bits/stdc++. ...
- acwing 850. Dijkstra求最短路(二)堆优化版本
给定一个 n 个点 m 条边的有向图,图中可能存在重边和自环,所有边权均为非负值. 请你求出 1 号点到 n 号点的最短距离,如果无法从 1 号点走到 n 号点,则输出 −1. 输入格式 第一行包含整 ...
- 算法提高课-图论-单源最短路的建图方式-AcWing 920. 最优乘车:bfs求最短路、建图
题目分析 来源:acwing 分析: 本题难在抽象建图上,这里采用的建图方式是:同一条公交线路上,前面的站点都可以连一条有向边到其后面的站点,且边权都为1. 由于边权都是1,可以用bfs来求最短路. ...
最新文章
- linux中的vp命令,Linux基础回顾之基础命令五(用户及组)
- NOIP模拟题——神秘大门
- CCNA笔记之第二十节:RIP协议(大实验4)
- OpenCV-绘制圆端矩形(药丸)
- 074-enable-right-click
- 图新地球点云大师:点云数据三维可视化管理及等高线提取
- linux 查看链接文件,Linux下的链接文件详解
- MWORKS应用案例 | 基于Modelica的射流管式电液伺服阀的建模仿真
- 利用神经网络识别12306验证码——(五)训练模型
- 用Html实现世纪佳缘交友注册页面是什么体验?
- D3D11和D3D12共享资源
- Docker安装java环境并部署jar包运行
- 手推SVM及SMO算法实现
- 光纤收发器的原理及应用_光纤收发器知识讲解(一)
- 陕西师范大学公费师范生计算机,陕西师范大学公费师范生2019年录取分数线-陕师大公费师范专业...
- 判断两个链表是否交叉,并求出交叉点
- js 金钱格式化(money)
- uni_app的axios封装
- 检测网站速度和安全性的方法
- add1顶部菜单html,menuStrip1动态添加菜单及快捷键