AT_pakencamp_2019_day4_f イーハチはやる
题目描述
Pakenomy 公司由 $N$ 个房间和 $N-1$ 条走廊组成.我们为房间编号$1 \sim N$,走廊编号 $1 \sim N-1$。走廊 $i$ 将房间 $A_i$ 和房间 $B_i$ 双向连接。通过几条走廊,可以在任意两个房间之间移动。
Pakenomy 公司管理着很多怪物。一旦发生紧急情况,这些怪物就会侵入走廊。Iihachi 是负责镇压骚动的职员。但他想事先调查一下这些行为。
当 Iihachi 通过走廊 $e$ 时,体力会减少 $C_e$。当体力小于等于 $0$ ,就会“复苏”,体力会变成 $K$。
题目有 $Q$ 次询问,第 $i$ 个问题为:
- 当 Iihachi 初始以体力 $K$ 的状态,从房间 $S_i$ 通过走廊到房间 $T_i$ 的途中,最少“复苏”几次。
输入格式
第一行读入两个正整数 $N,K$。
接下来 $N-1$ 行,每行读入三个正整数 $A_i,B_i,C_i$。
接下来一行,读入一个正整数 $Q$。
接下来 $Q$ 行,每行读入两个正整数 $S_i,T_i$。
输出格式
输出 $Q$ 行,第 $i$ 行输出第 $i$ 个问题的答案。
说明/提示
本题采用捆绑测试。
- Subtask 1(5 pts) 满足 $ N=2,\ Q=1 $。
- Subtask 2(18 pts) 满足 $ N\ \leq\ 4000,\ Q\ \leq\ 4000 $。
- Subtask 3(12 pts) 满足 $ N\ \leq\ 4000 $。
- Subtask 4(33 pts) 对于任意 $i(1\leq i\leq N-1)$,满足$A_i=i$ 及 $B_i=i+1$。
- Subtask 5(32 pts) 无附加条件。
对于 $100\%$ 的数据,保证
- 输入均为整数
- $ 2\ \leq\ N\ \leq\ 2\ \times\ 10^5 $
- $ 1\ \leq\ K\ \leq\ 10^9 $
- $ 1\ \leq\ A_i,\ B_i\ \leq\ N\ (1\ \leq\ i\ \leq\ N-1) $
- 通过几条走廊,可以在任意两个房间之间移动
- $ 0\ \leq\ C_i\ \leq\ 10^9\ (1\ \leq\ i\ \leq\ N-1) $
- $ 1\ \leq\ Q\ \leq\ 2\ \times\ 10^5 $
- $ 1\ \leq\ S_i,\ T_i\ \leq\ N\ (1\ \leq\ i\ \leq\ Q) $
- $ S_i\ \neq\ T_i\ (1\ \leq\ i\ \leq\ Q) $
### 样例解释
对于样例一:
由房间 $3$ 至房间 $6$:
- 通过走廊 $2$,体力变为 $5-10=-5$。“复苏”,体力变为 $5$。
- 通过走廊 $1$,体力变为 $5-3=2$。
- 通过走廊 $5$,体力变为 $2-2=0$。“复苏”,体力变为 $5$。
由房间 $4$ 至房间 $7$:
- 通过走廊 $3$,体力变为 $5-3=2$。
- 通过走廊 $1$,体力变为 $2-3=-1$。“复苏”,体力变为 $5$。
- 通过走廊 $4$,体力变为 $5-1=4$。
- 通过走廊 $6$,体力变为 $4-1=3$。
由房间 $7$ 至房间 $6$:
- 通过走廊 $6$,体力变为 $5-1=4$。
- 通过走廊 $4$,体力变为 $4-1=3$。
- 通过走廊 $5$,体力变为 $3-2=1$。
对于样例二,每次经过走廊都会“复苏”。
@[lihl](https://www.luogu.com.cn/user/711887) 提供翻译。