编程题
### 问题描述 市长小蓝致力于改善城市的电力传输网络。这个城市由 $n$ 个节点组成,每两个节点之间通过 $n-1$ 条不同的双向电缆连接,这使得从任何一个节点都可以到达其他任意节点。 小蓝希望升级一些电缆以提高电力传输效率。对于每条电缆,我们知道当前的传输速度 $v_{i}$,升级所需的费用 $c_{i}$(单位:元) 以及升级后的传输速度 $s_{i}$。 城市中有 $q$ 位市民提出了各自的升级建议。第 $i$ 位市民的建议是:“我们应该投资 $e_{i}$ 元来升级节点 $a_{i}$ 和节点 $b_{i}$ 之间的电缆。” 对于每一个建议,小蓝想知道,如果他最多花费 $e_{i}$ 元来升级节点 $a_i$ 和 $b_i$ 之间的电缆,那么节点 $a_{i}$ 和节点 $b_{i}$ 之间的电缆的最小传输速度的最大可能值会是多少? 小蓝很快意识到计算这个问题并不容易,因此他聘请了你来帮助他! ### 输入格式 第一行包含一个整数 $n$($2 \leq n \leq 10^5$),表示节点的数量。 接下来的 $n - 1$ 行中,每行包含五个整数 $x_i,y_i,v_i,c_i,s_i$($1 \leq x_i,y_i \leq n, 1 \leq v_i < s_i \leq 10^{9}, 1 \leq c_i \leq 10^{9}$),表示节点 $x_i$ 和 $y_i$ 之间有一条电缆,当前传输速度是 $v_i$,升级这条电缆的费用是 $c_i$,升级后的传输速度是 $s_i$。 接下来的第一行包含一个整数 $q$($1 \leq q \leq 10^5$),表示提出建议的市民的数量。 接下来的 $q$ 行中,每行包含三个整数 $a_i,b_i,e_i$($1 \leq a_i,b_i \leq n, a_i \neq b_i, 1 \leq e_i \leq 10^{18}$),表示了第 $i$ 名市民的建议。 ### 输出格式 对于每个建议,输出一行,包含一个整数,表示在最多花费 $e_{i}$ 元来升级节点 $a_i$ 和 $b_i$ 之间的电缆时,节点 $a_{i}$ 和节点 $b_{i}$ 之间的电缆的最小传输速度的最大可能值。 ### 样例输入 ```text 3 1 2 3 5 4 2 3 4 5 5 1 1 3 5 ``` ### 样例输出 ```text 4 ``` ### 样例说明 在给定样例中: - $1\leftrightarrow 2$ 的传输速率是 $3$,升级费用是 $5$ 元,升级后的传输速率是 $4$。 - $2\leftrightarrow 3$ 的传输速率是 $4$,升级费用是 $5$ 元,升级后的传输速率是 $5$。 市民建议投资 $5$ 元来升级节点 $1$、$3$ 之间的电缆。 对此,小蓝可以用这 $5$ 元升级 $1\leftrightarrow 2$,使其传输速率变为 $4$。 升级之后,节点 $1$、$3$ 之间的电缆的最小传输速率的最大值为 $4$。
查看答案
赣ICP备20007335号-2