#3481. 魔法传送门之旅

魔法传送门之旅

题目描述

在一个神秘的魔法世界里,有 nn 个魔法城市,编号从 00n1n-1。这些城市之间通过魔法传送门相连,每个传送门连接两个城市,使用一次需要消耗一定量的魔法值。

小魔法师莉莉安和她的朋友汤姆想要从一座城市出发,前往另一座城市。他们可以在途中经过其他城市进行中转。

幸运的是,莉莉安掌握了一种空间魔法,可以最多在 kk 个传送门上免费通行(即不消耗魔法值)。她可以自由选择哪些传送门使用这个特权。

请你帮助莉莉安计算,从起点城市 ss 到终点城市 tt 的最少需要消耗多少魔法值。

输入格式

第一行包含三个整数 n,m,kn, m, k,分别表示魔法城市的数量、传送门的数量,以及可以免费通行的传送门个数。

第二行包含两个整数 s,ts, t,分别表示起点城市编号和终点城市编号。

接下来 mm 行,每行包含三个整数 u,v,wu, v, w,表示存在一个传送门连接城市 uu 和城市 vv,使用一次需要消耗 ww 点魔法值。传送门是双向的,即可以从 uuvv,也可以从 vvuu

输出格式

输出一行一个整数,表示从 sstt 最少需要消耗的魔法值。

输入输出样例 #1

输入 #1

5 6 1
0 4
0 1 5
1 2 5
2 3 5
3 4 5
2 3 3
0 2 100

输出 #1

8

数据范围

子任务编号 数据点占比 nn mm kk 边权范围
11 30%30\% 50\leq 50 300\leq 300 k=0k=0 01030-10^3
22 50%50\% 600\leq 600 6000\leq 6000 0k10\leq k\leq 1
33 100%100\% 104\leq 10^4 5×104\leq 5\times 10^4 0k100\leq k\leq 10

对于全部数据,保证:

  • 2n1042 \leq n \leq 10^4
  • 1m5×1041 \leq m \leq 5 \times 10^4
  • 0k100 \leq k \leq 10
  • 0s,t,u,v<n0 \leq s, t, u, v < n
  • uvu \neq v
  • 0w1030 \leq w \leq 10^3

提示(原题为某年东北省选题,原题没有提示)

这是一个分层图最短路径问题 将原图复制 k+1k+1 层,第 ii 层表示已经使用了 ii 次免费通行

在同一层内,边权保持不变

从第 ii 层到第 i+1i+1 层,添加边权为0的边,表示使用一次免费通行

最后求从起点 ss 到任意一层终点 tt 的最短路径