#S8U14P03. 全体站点的往返距离

全体站点的往返距离

全体站点的往返距离

难度:T2

【知识点:Dijkstra最短路】

前置知识:本单元此前讲解的状态、边界与实现。

题目描述

给出有向带权图和站点 ss。对每个顶点,分别考虑从 ss 到该点、再返回 ss 的最短往返距离,求这些往返距离的总和。不是用一次旅行走遍全部顶点。

输入格式

其中 nn 为顶点数,顶点编号为 11 到 nn;mm 为随后给出的带权边条数。每条带权边独占一行,依次为 u,v,wu,v,w,表示从 uu 到 vv 的边及权值 ww;无向边可双向通行,有向边只能从 uu 到 vv 通行。

输入nn、mm、ss及mm条有向非负权边uu、vv、ww。每个站点分别从ss往返,不是一趟走遍所有站点。

输出格式

任意站点不能往返则输出-11;否则输出所有站点往返最短距离之和。

数据范围

1≤n≤5001\le n\le 500,0≤m≤2000000\le m\le 200000,0≤w≤1090\le w\le 10^9,编号在11..nn。

样例输入

1 0 1

样例输出

0

样例输入 2

3 4 1
1 2 2
2 1 3
1 3 1
3 1 5

样例输出 2

11

样例说明 2

两个非源点的最短往返距离分别为 5,65,6,总和为 1111。