在具有可变权重的图中寻找最短路径
Go
Hard
maps
任务 «在具有可变权重的图中寻找最短路径»
给定一个包含 N 个顶点和 M 条边的无向加权图。边的权重会随时间变化:每条边都有一个初始权重和一个变化数组(包含时间点和新值)。需要找到在时间 T 时从顶点 1 到顶点 N 的最短路径。路径可以经过任意顶点,但边的权重取时间 T 时的值。如果路径不存在,输出 -1。
输入格式
第一行:N M T(1 ≤ N ≤ 1000,1 ≤ M ≤ 10000,0 ≤ T ≤ 10^9)。接下来 M 行:u v w0 k(1 ≤ u,v ≤ N,1 ≤ w0 ≤ 1000,0 ≤ k ≤ 100)—— 边、初始权重、变化次数。然后 k 行:ti wi(0 ≤ ti ≤ T,1 ≤ wi ≤ 1000)—— 时间点和新的权重。变化按 ti 排序。
输出格式
一个整数——在时刻T从1到N的路径中边的最小权重和,或-1。
示例
示例 1
输入
2 1 0
1 2 10 1
0 5
输出
5
main.go