2099. Floyd算法模板
1000ms
256MB
中等
最短路径问题
模板题
题目描述
给定一个 $n$ 个点 $m$ 条边的有向图,图中可能存在重边和自环,边权可能为负数。
再给定 $k$ 个询问,每个询问包含两个整数 $x$ 和 $y$,表示查询从点 $x$ 到点 $y$ 的最短距离。
如果路径不存在,则输出 `impossible`。数据保证图中不存在负权回路。
输入格式
- 第一行包含三个整数 $n, m, k$。
- 接下来 $m$ 行,每行包含三个整数 $x, y, z$,表示存在一条从点 $x$ 到点 $y$ 的有向边,边长为 $z$。
- 接下来 $k$ 行,每行包含两个整数 $x, y$,表示询问点 $x$ 到点 $y$ 的最短距离。
输出格式
- 共 $k$ 行,每行输出一个整数,表示询问的结果。
- 若询问两点间不存在路径,则输出 `impossible`。
样例 1
输入 (Input)
3 3 1 2 1 2 3 2 1 3 1 2 2 1 1 3
输出 (Output)
impossible 1
- $1 \le n \le 200$
- $1 \le k \le n^2$
- $1 \le m \le 20000$
- 图中涉及边长绝对值均不超过 $10000$。
- **注意**:由于存在负权边,判断不可达时需考虑无穷大值被负权边削减的情况。
› 输入 stdin
CtrlShiftEnter
‹ 输出 stdout
错误 stderr
操作成功