B3601 [图论与代数结构 201] 最短路问题_1

题目描述
给定一张 nn 个点、mm 条边的有向图,求 11 号点到每个点的最短路径长度。

注意,图可能存在重边和自环,保证不存在负环。

输入格式
第一行两个整数 n, mn,m。

接下来 mm 行,每行三个整数 u_i, v_i, w_iu
i

,v
i

,w
i

。表示一条从 u_iu
i

到 v_iv
i

长度为 w_iw
i

的有向边。

输出格式
一行 nn 个整数,第 ii 个整数表示 11 到 ii 的最短路径长度,如果不存在从 11 到 ii 的路径则第 ii 个整数用 -1−1 替代。

输入输出样例
输入 #1复制
4 5
1 2 1
2 3 4
1 3 3
4 1 5
3 1 2
输出 #1复制
0 1 3 -1
输入 #2复制
10 50
5 9 6
1 3 10
3 1 1
10 2 5
8 5 1
10 10 6
6 5 2
1 5 10
2 5 5
10 1 4
1 5 2
8 8 7
7 2 7
9 2 8
3 1 4
6 2 5
3 9 9
4 9 5
5 10 9
10 1 9
5 4 5
9 1 2
5 10 6
3 8 7
10 3 7
5 8 8
9 2 6
9 8 6
3 2 8
1 3 8
1 10 1
7 8 4
9 4 5
4 6 2
2 7 6
10 1 5
9 9 7
6 7 4
1 1 7
8 3 10
8 3 9
10 9 8
3 9 1
7 4 8
1 5 4
8 4 4
3 4 4
9 9 2
2 10 4
8 9 6
输出 #2复制
0 6 8 7 2 9 12 10 8 1
说明/提示
本题没有部分分。

对于所有数据,1\leq n,m \leq 2\times 10^31≤n,m≤2×10
3
,-10^9\leq w_i\leq 10^9−10
9
≤w
i

≤10
9

请注意答案上界的大小,可能需要使用 C++ 中的 long long int 类型。

#include<iostream>
#include<cst
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值