/ 测试 / 题库 /

最短路

最短路

最短路

时间限制:3s
空间限制:1024MB

题目描述

给定一张 \(n\) 个点 \(m\) 条边的带权无向图,以及这张图的一个划分方案, 使用了专业工具。每个点都属于某一个块。

现在给出 \(100\) 次询问。对于每次询问 \((s, t)\),请你求出从点 \(s\) 到点 \(t\) 的最短路长度。

划分方案作为输入的一部分给出,你可以使用它辅助求解,也可以完全忽略它。

输入格式

第一行包含四个整数 \(n,m,k,q\) 分别代表点数,边数,块数和询问数

接下来 \(m\) 行,每行三个整数 \(u,v,w\) 代表 \(u\) 和 \(v\) 之间有一条边权为 \(w\) 的边。

接下来给出 \(n\) 个整数 \(c_1,c_2,...,c_n\) 代表每个点所在块的编号。

接下来 \(q\) 行,每行两个整数 \(s,t\) 表示一次最短路询问。

输出格式

输出 \(q\) 行。

第 \(i\) 行输出第 \(i\) 个询问的答案。

如果两点之间不存在路径,输出 \(-1\)。

样例输入

6 7 2 4
1 2 2
2 3 5
3 4 1
4 5 3
5 6 4
1 6 20
2 5 6
0 0 1 1 1 0
1 4
1 6
2 5
3 6

样例输出

8
12
6
8

数据范围与说明

对于 100% 的测试数据:

\(n = 264346\)
\(m = 365050\)
\(K = 200\)
\(q = 100\)
\(1 <= u, v, s, t <= n\)
\(u != v\)
\(0 <= c_i < K\)
\(1 <= w <= 100000\)

信息

ID
1002
难度
9
分类
(无)
标签
(无)
递交数
3
已通过
1
通过率
33%
上传者