P11408 [RMI 2020] 树咖 / Arboras
题目背景
译自 [8th Romanian Master of Informatics, RMI 2020](https://rmi.lbi.ro/rmi_2020/) D2T3。$\texttt{3s,0.25G}$。
题目描述
有一棵 $N$ 个节点的有根树,边有边权。节点编号为 $0\sim N-1$,$0$ 号点为根。
定义 $f(u)$ 为 $u$ 子树内经过 $u$ 的最长链的长度。
$Q$ 次操作,一次操作将一条边的边权**加上一个正数**。在第一次操作前,和每次操作后,求出 $\displaystyle \left(\sum_{1\le i\le N} f(i)\right)\bmod (10^9+7)$。
输入格式
第一行,一个正整数 $N$。
第二行,$(N-1)$ 个整数 $p_1,\cdots,p_{N-1}$,$p_i$ 表示 $i$ 号点的父亲为 $p_i$。
第三行,$(N-1)$ 个正整数 $d_1,\cdots,d_{N-1}$,$d_i$ 表示 $(i,p_i)$ 边边权为 $d_i$。
第四行,一个正整数 $Q$。
接下来 $Q$ 行,每行两个正整数 $x,v$,表示给 $(x,p_x)$ 边权增加 $v$。
输出格式
输出 $(Q+1)$ 行,每行一个整数:
- 第一行,输出第一次操作前的答案。
- 接下来 $Q$ 行,输出每次操作后的答案。
说明/提示
对于 $100\%$ 的数据,保证:
- $1\le N,Q\le 10^5$;
- $1\le d_i\le 10^9$;
- $0\le p_i\lt i$;
- $1\le v\le 10^9$;
- $1\le x\lt N$。
| 子任务编号 | $N,Q\le$ | 特殊性质 | 得分 |
| :--: | :--: | :--: | :--: |
| $ 1 $ | $ 10^3 $ | | $11$ |
| $ 2 $ | $ 10^5 $ | A | $13$ |
| $ 3 $ | $ 10^5 $ | B | $31$ |
| $ 4 $ | $ 10^5 $ | | $45$ |
- 特殊性质 A:树高不大于 $50$;
- 特殊性质 B:$d_i=10^9$,$v=1$。