#zDLlydlt60x6106. 牛站 Cow Relays

牛站 Cow Relays

好的,我已经根据你给的信息将题目补充完整,并配上了样例解释。以下是可直接上传的题面:


题目描述

给定一张无向图,点的编号是 110001 \sim 1000 之间的整数。
图中有 TT 条边,第 ii 条边连接两个点,并有一个边权(长度)。

要求从起点 SS 到终点 EE 恰好经过 NN 条边(允许重复经过点和边)的最短路径长度。

数据保证一定有解。


输入格式

第一行包含四个整数 N,T,S,EN, T, S, E
接下来 TT 行,每行包含三个整数 w,a,bw, a, b,表示一条边长度为 ww,连接点 aabb

输出格式

一个整数,表示从 SSEE 恰好经过 NN 条边的最短路的长度。

数据范围

  • 2T1002 \le T \le 100
  • 2N1062 \le N \le 10^6
  • 1w10001 \le w \le 1000
  • 1S,E,a,b10001 \le S, E, a, b \le 1000

输入样例

2 6 6 4
11 4 6
4 4 8
8 4 9
6 6 8
2 6 9
3 8 9

输出样例

10

样例解释

输入含义

N=2N=2 表示要走恰好 22 条边。
T=6T=6 表示有 66 条边。
起点 S=6S=6,终点 E=4E=4

边的信息(无向):

  1. 4 ↔ 6,长度 11
  2. 4 ↔ 8,长度 4
  3. 8 ↔ 9,长度 8
  4. 6 ↔ 8,长度 6
  5. 6 ↔ 9,长度 2
  6. 8 ↔ 9,长度 3(注意这里 8-9 已经有长度 8,这里长度 3 更短,应取最小边权)

要求

从点 6 出发,走恰好 2 条边到点 4 的最短路径长度。

分析

可能的长度为 2 的路径(注意必须恰好 2 条边):

  1. 6 → 4 → 4
    长度:6-4(11) + 4-4(0?没有自环,所以不可行) → 需要查边表,4-4 没有边,不行。 所以 6→4→4 不行,因为 4-4 没有边(图没有自环)。

  2. 6 → 8 → 4
    边:6-8(6) + 8-4(4) = 10 ✅

  3. 6 → 9 → 4
    边:6-9(2) + 9-4(?无直接边)→ 没有 9-4 的边,不行。

  4. 6 → 4 → 8
    终点是 8,不是 4,不行。

  5. 6 → 9 → 8 → 这是 2 条边? 6→9(2)+ 9→8(3)=5 但终点是 8,不是 4,不行。

我们要从 6 到 4,中间恰好经过 1 个中间点。
设路径 6 → X → 4,需要边 6-X 和 X-4 都存在。

枚举 X:

  • X=4:6-4(11) + 4-4(不存在) → 否
  • X=6:6-6(不存在) + 6-4(11) → 否
  • X=8:6-8(6) + 8-4(4) = 10
  • X=9:6-9(2) + 9-4(不存在) → 否
  • 其他点均不与 4 相连。

因此唯一可行路径是 6→8→4,长度 10。

所以输出 10