题目描述
有一个有 N 个顶点和 M 条边的有向图。顶点编号为 1 到 N,第 i 条有向边从顶点 ai 指向顶点 bi。
在该图上,路径的成本定义为:
解决以下问题,对于每个 x=1,2,ldots,Q。
- 从顶点 sx 到顶点 tx 的路径的最小成本是多少?如果不存在这样的路径,则输出
-1
。
鉴于可能存在大量的输入和输出,推荐使用快速输入和输出方法。
约束条件
- 2leqNleq2000
- 0leqMleqN(N−1)
- 1leqai,bileqN
- aineqbi
- 如果 ineqj,则 (ai,bi)neq(aj,bj)。
- 1leqQleq104
- 1leqsi,tileqN
- sineqti
- 输入中的所有值都是整数。
输入
输入以以下格式从标准输入给出:
N M
a1 b1
vdots
aM bM
Q
s1 t1
vdots
sQ tQ
输出
输出 Q 行。
第 i 行应包含对于 x=i 的答案。
示例输入 1
4 4
1 2
2 3
3 1
4 3
3
1 2
2 1
1 4
示例输出 1
2
3
-1
对于 x=1,从顶点 1 经过第 1 条边到达顶点 2 的路径的成本为 2,为最小值。
对于 x=2,从顶点 2 经过第 2 条边到达顶点 3,然后经过第 3 条边从顶点 3 到达顶点 1 的路径的成本为 3,为最小值。
对于 x=3,从顶点 1 到顶点 4 不存在路径,因此应打印 -1
。