#1193. 【模板】单源最短路径(标准版)

【模板】单源最短路径(标准版)

题目背景

2018 年 7 月 19 日的 NOI 第一天,第一题是《归程》。有位选手熟练地用一种大家熟悉的最短路算法解了这道题。

这道题的成绩从 100100 分变成了 6060 分,原先有望拿到的银牌也变成了铜牌。他最终没能和自己心仪的大学签约。小 F 希望后来的选手能从这段经历中吸取教训。

题目描述

给定一张包含 nn 个顶点、mm 条有向边的图,每条边的权值都非负。求源点 ss 到各顶点的最短距离。

保证从 ss 出发可以到达图中的每一个顶点。

输入格式

首行是三个正整数 n,m,sn,m,s,分别表示点数、有向边数与源点编号。

接下来的 mm 行各给出三个非负整数 ui,vi,wiu_i,v_i,w_i。这条有向边由 uiu_i 指向 viv_i,权值为 wiw_i。

输出格式

输出一行 nn 个非负整数,依次为 ss 到顶点 11 至 nn 的最短距离。

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

说明/提示

样例说明

本题与弱化版使用相同的样例。

标准版样例的有向图

图中每条有向边的标号表示其权值。源点为 11,到自身的距离为 00。到 22 直接走权为 22 的边。到 33 经过 22,路程为 2+2=42+2=4。到 44 也经过 22,路程为 2+1=32+1=3。

数据范围

  • 1≤n≤1051\le n\le10^5,1≤m≤2×1051\le m\le2\times10^5,s=1s=1。
  • 1≤ui,vi≤n1\le u_i,v_i\le n,0≤wi≤1090\le w_i\le10^9。
  • 所有边的权值之和满足 0≤∑wi≤1090\le\sum w_i\le10^9。

原题的数据可能继续更新,更新后不重测此前提交的程序。原题曾于 2018 年 9 月 4 日更新数据。