A7573 | [ABC143E] Travel by Car
时间限制1s
内存限制256MB
通过 / 提交0/0
题目描述
有 $N$ 个编号为 $1$ 到 $N$ 的城镇,以及 $M$ 条道路。第 $i$ 条道路连接城镇 $A_i$ 和城镇 $B_i$,是双向的,道路长度为 $C_i$。
高桥君可以驾驶汽车在这些城镇之间通过道路移动。汽车的油箱容量为 $L$ 升,每行驶 $1$ 距离消耗 $1$ 升燃料。在途中到达某个城镇时,可以选择将油箱加满(也可以选择不加油)。不能在道路中途燃料耗尽。
请回答以下 $Q$ 个询问:
- 一开始,汽车油箱是满的。每个询问给定从城镇 $s_i$ 到城镇 $t_i$,请输出途中最少需要加油多少次才能到达。如果无法到达,请输出 $-1$。
高桥君可以驾驶汽车在这些城镇之间通过道路移动。汽车的油箱容量为 $L$ 升,每行驶 $1$ 距离消耗 $1$ 升燃料。在途中到达某个城镇时,可以选择将油箱加满(也可以选择不加油)。不能在道路中途燃料耗尽。
请回答以下 $Q$ 个询问:
- 一开始,汽车油箱是满的。每个询问给定从城镇 $s_i$ 到城镇 $t_i$,请输出途中最少需要加油多少次才能到达。如果无法到达,请输出 $-1$。
输入格式
输入以如下格式从标准输入读入。
> $N$ $M$ $L$
> $A_1$ $B_1$ $C_1$
> $\vdots$
> $A_M$ $B_M$ $C_M$
> $Q$
> $s_1$ $t_1$
> $\vdots$
> $s_Q$ $t_Q$
> $N$ $M$ $L$
> $A_1$ $B_1$ $C_1$
> $\vdots$
> $A_M$ $B_M$ $C_M$
> $Q$
> $s_1$ $t_1$
> $\vdots$
> $s_Q$ $t_Q$
输出格式
输出 $Q$ 行。
第 $i$ 行输出从城镇 $s_i$ 到城镇 $t_i$ 最少需要加油的次数。如果无法到达城镇 $t_i$,输出 $-1$。
第 $i$ 行输出从城镇 $s_i$ 到城镇 $t_i$ 最少需要加油的次数。如果无法到达城镇 $t_i$,输出 $-1$。
输入输出样例
输入 #1
3 2 5 1 2 3 2 3 3 2 3 2 1 3
输出 #1
0 1
输入 #2
4 0 1 1 2 1
输出 #2
-1
输入 #3
5 4 4 1 2 2 2 3 2 3 4 3 4 5 2 20 2 1 3 1 4 1 5 1 1 2 3 2 4 2 5 2 1 3 2 3 4 3 5 3 1 4 2 4 3 4 5 4 1 5 2 5 3 5 4 5
输出 #3
0 0 1 2 0 0 1 2 0 0 0 1 1 1 0 0 2 2 1 0
### 限制条件
- 所有输入均为整数。
- $2 \leq N \leq 300$
- $0 \leq M \leq \frac{N(N-1)}{2}$
- $1 \leq L \leq 10^9$
- $1 \leq A_i, B_i \leq N$
- $A_i \neq B_i$
- $(A_i, B_i) \neq (A_j, B_j)$(当 $i \neq j$ 时)
- $(A_i, B_i) \neq (B_j, A_j)$(当 $i \neq j$ 时)
- $1 \leq C_i \leq 10^9$
- $1 \leq Q \leq N(N-1)$
- $1 \leq s_i, t_i \leq N$
- $s_i \neq t_i$
- $(s_i, t_i) \neq (s_j, t_j)$(当 $i \neq j$ 时)
### 样例解释 1
从城镇 $3$ 到城镇 $2$ 时,可以直接通过第 $2$ 条道路到达,无需中途加油。从城镇 $1$ 到城镇 $3$ 时,先通过第 $1$ 条道路到达城镇 $2$,在此加满油,再通过第 $2$ 条道路到达城镇 $3$。
### 样例解释 2
有可能没有任何道路。
- 所有输入均为整数。
- $2 \leq N \leq 300$
- $0 \leq M \leq \frac{N(N-1)}{2}$
- $1 \leq L \leq 10^9$
- $1 \leq A_i, B_i \leq N$
- $A_i \neq B_i$
- $(A_i, B_i) \neq (A_j, B_j)$(当 $i \neq j$ 时)
- $(A_i, B_i) \neq (B_j, A_j)$(当 $i \neq j$ 时)
- $1 \leq C_i \leq 10^9$
- $1 \leq Q \leq N(N-1)$
- $1 \leq s_i, t_i \leq N$
- $s_i \neq t_i$
- $(s_i, t_i) \neq (s_j, t_j)$(当 $i \neq j$ 时)
### 样例解释 1
从城镇 $3$ 到城镇 $2$ 时,可以直接通过第 $2$ 条道路到达,无需中途加油。从城镇 $1$ 到城镇 $3$ 时,先通过第 $1$ 条道路到达城镇 $2$,在此加满油,再通过第 $2$ 条道路到达城镇 $3$。
### 样例解释 2
有可能没有任何道路。
C++ 编辑器
输入
输出
可保存默认模板;新题优先使用已保存模板。
当前快捷键仅展示,暂不支持修改。
- 撤销
Ctrl / ⌘ + Z - 重做
Ctrl / ⌘ + Y - 查找
Ctrl / ⌘ + F - 全选
Ctrl / ⌘ + A - 复制
Ctrl / ⌘ + C - 剪切
Ctrl / ⌘ + X - 粘贴
Ctrl / ⌘ + V - 自动排版
工具栏排版按钮 - 草稿保存
编辑时自动保存到本机
历史
提交记录
状态说明时间源码
AI
作答助手
你好,我是作答助手。可以问思路、复杂度、样例含义或代码报错原因;不会直接给出完整 AC 代码。
确定要清空代码吗?