#P17287. [2024年南开中学集训]树

[2024年南开中学集训]树

题目描述

给你一棵 nn 个节点的树,节点标号从 11nn。每个节点上有一个整数权值 aia_i。然后再给你两个整数 L,RL,R

你需要进行 mm 次如下操作:

  • 给定树上两个节点 u,vu,v 和一个整数 dd,将树上 uuvv 的路径上所有点权加 dd

在每个操作后,你需要输出以下问题的答案:

  • 所有节点个数在 [L,R][L,R] 范围内的简单路径的权值和之和。

由于答案可能很大,你只需要输出答案对 P=109+7P=10^9+7 的余数即可。

输入格式

输入的第一行包含四个正整数 n,m,L,Rn,m,L,R,分别表示节点个数、操作个数和两个参数。

第二行包含 nn 个整数,表示树上每个节点的初始权值。

第三行包含 n1n-1 个整数,描述树的形态,其中第 ii 个数 fif_i 表示节点 i+1i+1 与节点 fif_i 之间有一条边。

接下来 mm 行,第 ii 行包含三个整数 ui,vi,diu_i,v_i,d_i,描述题目中的第 ii 次操作。

输出格式

输出 mm 行,每行一个整数,第 ii 行的整数表示对于第 ii 个操作后的答案。

样例输入

10 10 3 6
36 11 76 24 71 89 24 63 75 40
1 1 2 2 3 3 4 4 5
2 5 18
5 7 95
7 10 82
8 2 99
8 1 85
7 7 60
1 5 85
4 3 38
9 4 17
1 1 99

样例输出

7591
17186
26124
32163
39473
39953
46073
49835
50328
52803

数据范围

对于所有数据,保证:

  • 1n,m1051\le n,m\le10^5
  • 1LRn1\le L\le R\le n
  • 0ai<P0\le a_i<P
  • 1fii<n1\le f_i\le i<n
  • 1ui,vin1\le u_i,v_i\le n
  • 0d<P0\le d<P
测试点 nn mm 特殊性质
1 =10=10
2 =50=50
3 =300=300
4 =2000=2000 =2000=2000
5 =105=10^5
6 =105=10^5 A
7 B
8 C
9, 10

特殊性质 A: fi=if_i=i

特殊性质 B: fi=i+12f_i=\left\lfloor\frac{i+1}{2}\right\rfloor

特殊性质 C: 相同的 fif_i 最多出现 22 次。