题目描述
给定一个 N 个点,M 条有向边的带非负权图,请你计算从 S 出发,到每个点的距离。
数据保证你能从 S 出发到任意点。
输入输出格式
输入格式:
第一行为三个正整数 N,M,S。 第二行起 M 行,每行三个非负整数 ui,vi,wi,表示从 ui 到 v 有一条权值为 wi 的边。
输出格式:
输出一行 N 个空格分隔的非负整数,表示 S 到每个点的距离。
输入输出样例
输入样例#1:
4 6 1
1 2 2
2 3 2
2 4 1
1 3 5
3 4 3
1 4 4
输出样例#1:
0 2 4 3
说明
样例解释请参考 数据随机的模板题。
1≤N≤100000
1≤M≤200000
S=1;
1≤ui,vi≤N
0≤wi≤109
0≤∑wi≤109
#include<stdio.h>
#include<queue>
#include<cstdlib>
#define N 100003
#define M 200003
#define INF 2147483647
using namespace std;
int head[N]={0};
int next1[M]={0};
int V[M]={0};
bool vis[N]={0};
int W[M]={0};
int tot=0;
int dist[N]={0};
int n=0,m=0,s=0;
void add(int x,int y,int c){
tot++;
next1[tot]=head[x];
V[tot]=y;W[tot]=c;
head[x]=tot;
}
priority

该博客主要介绍了如何解决带非负权图的单源最短路径问题,以N个点和M条边的数据为例,从点S出发计算到达所有点的最短距离。输入包括图的节点数、边数及起点S,输出为S到每个点的最短路径长度。题目保证能从S到达任意点,且权值非负,不超过10^9的总和。
最低0.47元/天 解锁文章
458

被折叠的 条评论
为什么被折叠?



