luogu#P12027. [USACO25OPEN] Ski Slope S

[USACO25OPEN] Ski Slope S

题目描述

贝茜要和朋友们一起去滑雪。雪山上有 NN 个路标(1N1051 \leq N \leq 10^5),按海拔从低到高依次标记为 1,2,,N1, 2, \ldots, N(路标 11 位于山脚)。

对于每个路标 i>1i > 1,有一条从路标 ii 出发,终点为路标 pip_i1pi<i1 \leq p_i < i)的滑雪道。这条滑道的难度为 did_i0di1090 \leq d_i \leq 10^9),乐趣值为 eie_i0ei1090 \leq e_i \leq 10^9)。

贝茜的 MM 个朋友(1M1051 \leq M \leq 10^5)每人会进行如下操作:选择一个起始路标 ii,然后沿着滑道向下滑行(依次经过 pi,ppip_i,p_{p_i},依此类推),直到抵达路标 11

每位朋友获得的乐趣值等于他们经过的所有滑道的乐趣值之和。每个朋友有不同的技能水平 sjs_j0sj1090 \leq s_j \leq 10^9)和勇气值 cjc_j0cj100 \leq c_j \leq 10),这限制他们选择的起始路标必须满足:滑行过程中最多有 cjc_j 条滑道的难度超过 sjs_j

请为每位朋友计算他们能获得的最大乐趣值。

输入格式

第一行包含 NN

接下来 22NN 行,每行包含三个整数 pip_idid_ieie_i

随后一行包含 MM

接下来 MM 行,每行包含两个整数 sjs_jcjc_j

输出格式

输出 MM 行,每行对应一个朋友的答案。

注意:由于涉及大整数运算,可能需要使用 64 位整数类型(如 C/C++ 中的 long long)。

4
1 20 200
2 30 300
2 10 100
8
19 0
19 1
19 2
20 0
20 1
20 2
29 0
30 0
0
300
500
300
500
500
300
500

提示

第一位朋友只能选择路标 11 作为起点,因为其他路标都会导致至少经过一条难度超过 1919 的滑道。总乐趣值为 00

第二位朋友可以选择路标 44,依次滑行至路标 2211。总乐趣值为 100+200=300100 + 200 = 300,其中有一条滑道难度超过 1919

第三位朋友可以选择路标 33,依次滑行至路标 2211。总乐趣值为 300+200=500300 + 200 = 500,其中有两条滑道难度超过 1919

  • 测试点 242\sim4N,M1000N, M \leq 1000
  • 测试点 575\sim7:所有 cj=0c_j = 0
  • 测试点 8178\sim17:无额外限制。