最短路——【模板】单源最短路径(弱化版)(dijkstra)
题目链接
最短路——【模板】单源最短路径(弱化版)(dijkstra)
题目描述
如题,给出一个有向图,请输出从某一点出发到所有点的最短路径长度。
输入格式
第一行包含三个整数 n,m,s,分别表示点的个数、有向边的个数、出发点的编号。
接下来 m 行每行包含三个整数 u,v,w,表示一条 u→v 的,长度为 w 的边。
输出格式
输出一行 n 个整数,第 i 个表示 s 到第 i 个点的最短路径,若不能到达则输出 231-1。
输入输出样例
输入
4 6 1
1 2 2
2 3 2
2 4 1
1 3 5
3 4 3
1 4 4
输出
0 2 4 3
#include<bits/stdc++.h>
#define pii pair<int,int>
using namespace std;
const int maxn=500005;
int n,m,s,u,v,w;struct node{int to,len;
};vector<node> f[maxn];
long long dis[maxn];
int vis[maxn];void dijkstra(int t)
{priority_queue<pii,vector<pii>,greater<pii> > q;dis[t]=0;q.push(pii(0,t));while(!q.empty()){pii x=q.top();q.pop();int tt=x.second;if(vis[tt]){continue;}vis[tt]=1;for(int i=0;i<f[tt].size();i++){node a=f[tt][i];if(dis[a.to]>dis[tt]+a.len){dis[a.to]=dis[tt]+a.len;q.push(pii(dis[a.to],a.to));}}}
}int main()
{cin>>n>>m>>s;for(int i=0;i<m;i++){cin>>u>>v>>w;f[u].push_back({v,w});}for(int i=1;i<=n;i++){dis[i]=2147483647;}memset(vis,0,sizeof(vis));dijkstra(s);for(int i=1;i<=n;i++){printf("%lld ",dis[i]);}return 0;
}
最短路——【模板】单源最短路径(弱化版)(dijkstra)相关推荐
- p3371 单源最短路径(弱化版)-java题解-最短路
弱化版传送门: P3371 [模板]单源最短路径(弱化版) - 洛谷 | 计算机科学教育新生态 (luogu.com.cn) 题目背景 本题测试数据为随机数据,在考试中可能会出现构造数据让SPFA不通 ...
- p4779 单源最短路径(标准版)-java版
传送门: P4779 [模板]单源最短路径(标准版) - 洛谷 | 计算机科学教育新生态 (luogu.com.cn)https://www.luogu.com.cn/problem/P4779 先给 ...
- 图论(四)------非负权有向图的单源最短路径问题,Dijkstra算法
Dijkstra算法解决了有向图G=(V,E)上带权的单源最短路径问题,但要求所有边的权值非负. Dijkstra算法是贪婪算法的一个很好的例子.设置一顶点集合S,从源点s到集合中的顶点的最终最短路径 ...
- 用java编写的一个迪杰斯特拉算法(单源最短路径算法,Dijkstra算法)。
可以用于有向图和无向图.用负数表示该有向路不通.在EditPlus上写的,所以就一个.java文件. package Test;import java.util.TreeMap; import jav ...
- 单源最短路径问题(dijkstra算法)
一.问题描述 给定一个随机带权有向图,每条边的权是一个实数.另外给定图中一个顶点,称为源.计算源到各顶点的最短路径长度(即距离),要求能随机生成图,随机指定源点计算出到顶点的最短距离. 二.解题思路 ...
- 单源最短路径(spfa,Dijkstra, bellman-ford)
目录 Dijkstra 原理:基于贪心. 为什么 Dijkstra 不能处理有负边的情况 Bellman-ford 原理:动态规划, 实质见floyd的另一篇博客 1,能找负环, 2,有变数限制的最短 ...
- 单源最短路径问题(Java)
单源最短路径问题(Java) 文章目录 单源最短路径问题(Java) 1.问题描述 2.算法思路 3.代码实现 4.算法正确性和计算复杂性 4.1 贪心选择性质 4.2 最优子结构性质 4.3 计算复 ...
- 【算法】Dijkstra算法(单源最短路径问题) 邻接矩阵和邻接表实现
Dijkstra算法可使用的前提:不存在负圈. 负圈:负圈又称负环,就是说一个全部由负权的边组成的环,这样的话不存在最短路,因为每在环中转一圈路径总长就会边小. 算法描述: 1.找到最短距离已确定的顶 ...
- JAVA编程求单源最短路径_【算法】单源最短路径——dijkstra算法
一,概念 单源最短路径 给定一个带权有向图G=(V,E),其中每条边的权是一个实数.另外,还给定V中的一个顶点,称为源.要计算从源到其他所有各顶点的最短路径长度.这里的长度就是指路上各边权之和.这个问 ...
- 算法导论-上课笔记11:单源最短路径
文章目录 0 前言 0.1 最短路径的几个变体 0.2 最短路径的最优子结构 0.3 负权重的边 0.4 环路 0.5 最短路径的表示 0.6 松弛操作 0.7 最短路径和松弛操作的性质 1 Bell ...
最新文章
- 参加java培训都有哪些学习阶段
- 开发提交审核流程_小游戏上线发布全流程详解?
- Hibernate4一对一关系映射(共享主键方式)
- 简述css属性选择器的几种定义方式_CSS 属性选择器详解
- ITK:将颜色图应用于标签图并将其叠加在图像上
- MapReduce实例(数据去重)
- php 计时器microtime 以及去掉数组重复值array_unique
- beetl的使用感受
- 《数据结构上机实验(C语言实现)》笔记(2 / 12):线性表
- matlab的四维图像数据可视化
- 关于SpringBoot下template文件夹下html页面访问的一些问题
- springboot整合redisson实现多种分布式锁
- 玲珑杯#3 G 1043 - G. Quailty and Square Counter【线段树-卡常数】
- spss26没有典型相关性分析_SPSS执行典型相关性分析,出现下面错误,怎么回事??...
- 计算机系十周年聚会邀请函,十周年同学聚会邀请函
- 爬虫工程师是干嘛的?Python爬虫工程师需要掌握哪些技能?
- IGMP协议(IGMPv1、IGMPv2、IGMPv3)
- 高光谱图像压缩方法综述
- Python个人项目1 --------电商项目
- 虚拟地址 虚拟内存 物理地址