最小代价
题目描述
有一个包含 N 个顶点、M 条边的有向图。顶点编号为 1 到 N,第 i 条有向边从顶点 ai 指向顶点 bi。
对于该图上的一条路径,其“代价”定义如下:
对于 x=1,2,…,Q,请解答以下问题:
- 求从顶点 sx 到顶点 tx 的路径的最小代价。如果不存在这样的路径,则输出 −1。
注意,输入数据量可能较大,建议使用高效的输入输出方法。
输入格式
输入按以下格式从标准输入给出。
N M
a1 b1
⋮
aM bM
Q
s1 t1
⋮
sQ tQ
输出格式
输出 Q 行。
第 i 行输出对应 x=i 的答案。
输入输出样例 #1
输入 #1
4 4
1 2
2 3
3 1
4 3
3
1 2
2 1
1 4
输出 #1
2
3
-1
说明/提示
限制条件
- 2≤N≤2000
- 0≤M≤N(N−1)
- 1≤ai,bi≤N
- ai=bi
- 若 i=j,则 (ai,bi)=(aj,bj)
- 1≤Q≤104
- 1≤si,ti≤N
- si=ti
- 所有输入均为整数
样例解释 1
对于 x=1,可以通过第 1 条边从顶点 1 到顶点 2,路径代价为 2,这是最小值。
对于 x=2,可以通过第 2 条边从顶点 2 到顶点 3,再通过第 3 条边从顶点 3 到顶点 1,路径代价为 3,这是最小值。
对于 x=3,不存在从顶点 1 到顶点 4 的路径,因此输出 −1。