#4998. Problem 3. Ski Slope

0

Problem 3. Ski Slope

Problem 3. Ski Slope

USACO 2025 US Open Contest, Silver

Bessie 要和她的朋友们去滑雪旅行。山上有 NN 个标记点(1N1051\leq N \leq 10^5),编号为 1,2,,N1, 2, \ldots, N,以海拔升序排列(标记点 11 位于山脚下)。

对于每一个标记点 i>1i > 1,都有一条雪道开始于标记点 ii,结束于标记点 pip_i1pi<i1\le p_i<i)。这条雪道的难度为 did_i0di1090 \leq d_i \leq 10^9),乐趣值为 eie_i0ei1090 \leq e_i \leq 10^9)。

Bessie 的 MM 个朋友(1M1051\leq M \leq 10^5)的每一个将执行以下操作:她们会选择一个初始标记点 ii 作为起点,然后沿着雪道向下滑(到 pip_i,然后到 ppip_{p_i},以此类推),直至到达标记点 11

每一个朋友获得的乐趣值等于她们所经过的雪道的乐趣值之和。每一个朋友还有不同的技能水平 sjs_j0sj1090 \leq s_j \leq 10^9)和勇气水平 cjc_j0cj100 \leq c_j \leq 10),这限制她们所选择的初始标记点,使得她们至多经过 cjc_j 条难度大于 sjs_j 的雪道。

对于每一个朋友,计算她们可以获得的最大乐趣值。

输入格式(从终端 / 标准输入读入):

输入的第一行包含 NN

对于 22NN 的每一个 ii,以下一行包含三个空格分隔的整数 pip_idid_ieie_i

以下一行包含 MM

以下 MM 行,每行包含两个空格分隔的整数 sjs_jcjc_j

输出格式(输出至终端 / 标准输出):

输出 $M$ 行,对于每一个朋友输出一行,包含对于该朋友的答案。
注意这个问题涉及到的整数可能需要使用 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

  1. 第一个朋友不能从除了 11 以外的任何标记点开始,因为任何其他标记点都会导致她们经过至少一条难度大于 1919 的雪道。她们的总乐趣值为 00
  2. 第二个朋友可以从标记点 44 开始,滑到标记点 22,然后到 11。她们的总乐趣值为 100+200=300100+200=300。她们经过了一条难度大于 1919 的雪道。
  3. 第三个朋友可以从标记点 33 开始,滑到标记点 22,然后到 11。她们的总乐趣值为 300+200=500300+200=500。她们经过了两条难度大于 1919 的雪道。

测试点性质: 测试点 2-4:N,M1000N, M\le 1000。测试点 5-7:所有 cj=0c_j=0。测试点 8-17:没有额外限制。

供题:Brandon Wang