P6798 「StOI-2」简单的树

题目描述

给定一棵以 $1$ 为根,由 $n$ 个点组成的有根树,每个点有点权 $c_{i}$ 。 定义每个点的 $val$ 值为:以它为根的子树内所有 $c_{i}$ 的最大值。 定义函数 $f(x,y)$ 表示将 $c_{x}$ 改为 $y$ 后整棵树的 $val$ 值之和。 现在请您回答 $q$ 组询问,每次询问给定 $3$ 个量 $(l,r,a)$ ,请求出 $\sum\limits_{i=l}^{r}{f(a,i)}$ 对 $998,244,353$ 取模的结果。

输入格式

**本题强制在线** 第一行三个正整数,$n$、$q$ 和 $opt$,分别表示树的点数、询问数和控制强制在线的量。 第二行 $n$ 个正整数,表示每个点的点权。 接下来 $n-1$ 行,每行两个正整数 $u_{i}$ 和 $v_{i}$,表示树的每一条边。 接下来 $q$ 行,每行三个正整数 $l',r',a'$ ,请计算出真实的 $l,r,a$ 后完成询问。 - $l = (( l' + opt \times lastans )\bmod n )$ $+ 1$ - $r = (( r' + opt \times lastans )\bmod n )$ $+ 1$ - $a = (( a' + opt \times lastans )\bmod n )$ $+ 1$ 其中 $lastans$ 表示上一组询问的答案,初始为 $0$ 。 如果此时出现 $l > r$ 的情况,请交换 $l$ 和 $r$ 。

输出格式

对于每组询问,输出最终的答案。

说明/提示

## 样例解释 真实的 $(l,r,a)$ 为: - $(2,4,1)$ - $(3,5,2)$ - $(2,4,5)$ --- ## 数据范围 对于 $10\%$ 的数据:$1 \leq n,q \leq 100 $ 。 对于 $20\%$ 的数据:$1 \leq n,q \leq 3000 $ 。 对于另 $20\%$ 的数据:$1 \leq l',r',c_{i} \leq 2 $ 。 对于另 $20\%$ 的数据:$l'=r'$ 。 对于前 $80\%$ 的数据:$opt=0$ 。 对于 $100\%$ 的数据:$1 \leq n,q \leq 5 \times 10^{5} ,1 \leq c_{i} , a' , l' , r' \leq n$ 。