loj#P3651. 「2021 集训队互测」Slight Hope

「2021 集训队互测」Slight Hope

题目背景

Slight Light, Slight Hope.\texttt{Slight Light, Slight Hope.}

题目描述

小 W 有一棵 nn 个点的有根树(节点标号为 1n1\sim n),以 11 号点为根。其中 ii 号点的点权为 aia_i

假设 ii 号点的父节点为 fif_i(方便起见认为 f1=0f_1=0),小 W 发现这棵树有一个奇妙的性质:对于任意整数 i[2,n]i\in[2,n],满足 fi1fi<if_{i-1}\le f_i < i

小 C 对此很感兴趣,因此她决定进行 qq 次询问,第 ii 次询问给出一个区间 [li,ri][l_i,r_i],求:

$$ \left(\sum_{x=l_i}^{r_i}\sum_{y=l_i}^{r_i}[l_i\le \operatorname{LCA}(x,y)\le r_i]\cdot a_x\cdot a_y\right)\bmod998244353 $$

其中 LCA(x,y)\operatorname{LCA}(x,y) 表示 xxyy 的最近公共祖先。

因为小 C 在每次询问时都迫切地想要知道答案,所以本题强制在线(具体方式见输入格式)。

输入格式

第一行包含两个正整数 n,qn,q,分别表示节点个数和询问次数。

第二行 nn 个非负整数 a1na_{1\sim n},表示每个点的点权。

第三行 n1n-1 个正整数 f2nf_{2\sim n},表示每个点的父节点。

接下来 qq 行,每行两个非负整数 li,ril_i',r_i'。假设上一次询问的答案为 lstlst(对于第一个询问,认为 lst=0lst=0),则真正的 li=lilstl_i=l_i'\oplus lstri=rilstr_i=r_i'\oplus lst,其中 \oplus 表示按位异或运算。

输出格式

qq 行,每行一个整数表示对应询问的答案。(向 998244353998244353 取模)

6 3
1 2 3 4 5 6
1 1 2 2 3
1 2
11 12
131 132
9
130
441

数据范围与提示

Subtask 1(20%)1(20\%)n,q5×103n,q\le5\times10^3

Subtask 2(20%)2(20\%)n,q5×104n,q\le5\times10^4

Subtask 3(20%)3(20\%):树的形态随机

Subtask 4(40%)4(40\%):无特殊限制

对于 100%100\% 的数据,1n,q2.5×1051\le n,q\le2.5\times10^50ai<9982443530\le a_i < 9982443531lirin1\le l_i\le r_i\le n。保证对于任意整数 i[2,n]i\in[2,n],满足 fi1fi<if_{i-1}\le f_i < i