lqb#P26016. 回程

回程

题目描述

给定一张包含 nn 个点、mm 条无向边的图,点的编号为 1n1 \sim n。每条边连接两个不同的点,且可能存在重边。每条无向边由三个整数 u,v,wu, v, w 描述,表示点 uu 与点 vv 之间有一条无向边,其代价为 ww

你需要从点 nn 出发,到达点 11

图中有一个特殊点 XX。当第一次到达点 XX 时,可以获得 3 次特殊机会。若 X=nX = n,则表示出发时就已经获得这 3 次特殊机会。

在之后的行进过程中,每次经过一条边时,都可以选择是否使用一次特殊机会:

  • 如果不使用,则经过这条边的代价为该边原本的代价 ww
  • 如果使用,则这一次经过该边的代价变为 11

特殊机会可以少用或不用,但总共最多只能使用 3 次,每次只能作用于当前经过的一条边。

现在,请你计算从点 nn 到点 11 的最小总代价。若无法到达,则输出 1-1

输入格式

第一行包含三个整数 n,m,Xn, m, X,分别表示点数、边数和特殊点的位置。

接下来 mm 行,每行包含三个整数 u,v,wu, v, w,表示一条连接点 uu 与点 vv 的无向边,其代价为 ww

输出格式

输出一个整数,表示从点 nn 到点 11 的最小总代价。若无法到达,则输出 1-1

6 6 6
1 2 5
2 4 5
1 3 2
3 4 100
4 5 10
5 6 20
5

解释 #1

由于 X=6X = 6,而出发点也是 66,因此一开始就已经获得了 3 次特殊机会。

一种最优走法为:654316 \to 5 \to 4 \to 3 \to 1,对应边的原代价分别为 20,10,100,220, 10, 100, 2

在其中 3 条边上使用特殊机会,例如对代价为 20,10,10020, 10, 100 的三条边使用,则这三次经过的代价都变为 11,最后一条边仍支付原代价 22

因此总代价为 1+1+1+2=51 + 1 + 1 + 2 = 5

数据范围

  • 对于 30%30\% 的评测用例,n,m500n, m \leq 500
  • 另有额外 30%30\% 的评测用例,所有边的代价 ww 相同。
  • 对于所有的评测用例,1n2×1051 \leq n \leq 2 \times 10^51m2×1051 \leq m \leq 2 \times 10^51w1091 \leq w \leq 10^91X,u,vn1 \leq X, u, v \leq n

保证图中不含自环,但可能存在重边。