[HUSTFC 2023] 广义线段树

题目描述

对于任意长度为 $n$ 的序列 $a$,可以基于 $a$ 建立一个广义线段树。广义线段树是一个有 $(2n-1)$ 个节点的带权二叉树,对于每个编号为 $p$ 的节点,都有两个属性 $L_p$ 和 $R_p$,表示其维护的区间为 $[L_p,R_p]$,同时其权值 $M_p =\prod_{i=L_p}^{R_p}a_i$ 。另外,广义线段树还满足如下性质: - 所有编号为 $p\in [n,2n-1]$ 的节点是叶节点,同时 $L_p = R_p = p + 1 - n$。 - 所有编号为 $p\in [1,n-1]$ 的节点是非叶节点,其必定有左儿子 $X_p$ 和右儿子 $Y_p$,且 $p < X_p < Y_p$。节点 $p$ 维护的区间为左右儿子维护区间之并,且保证维护区间连续。形式化地,有 $R_{X_p}=L_{Y_p}-1$,且 $L_p=L_{X_p}$,$R_p=R_{Y_p}$。 例如,下面是一个基于 $n=4$ 的序列 $a=\{1, 2, 3, 4\}$ 建立的广义线段树(节点内整数对 $(p,M_p)$ 分别表示编号和权值)。可以发现,广义线段树的形态并不唯一。 ![1](https://cdn.luogu.com.cn/upload/image_hosting/de71i68l.png) 对这个广义线段树而言: - $[L_7, R_7] = [4, 4]$,故 $M_7 = a_4$ - $[L_6, R_6] = [3, 3]$,故 $M_6 = a_3$ - $[L_5, R_5] = [2, 2]$,故 $M_5 = a_2$ - $[L_4, R_4] = [1, 1]$,故 $M_4 = a_1$ - $[L_3, R_3] = [L_4, R_5] = [1, 2]$,故 $M_3 = a_1 \times a_2$ - $[L_2, R_2] = [L_3, R_6] = [1, 3]$,故 $M_2 = a_1 \times a_2 \times a_3$ - $[L_1, R_1] = [L_2, R_7] = [1, 4]$,故 $M_1 = a_1 \times a_2 \times a_3 \times a_4$ 分别给定长度为 $n$ 的序列 $a$,$b$ 以及节点数为 $(2n-1)$ 的广义线段树 $T$ 的形态(即每个节点的左右儿子编号),然后你需要执行 $n$ 次操作,第 $i$ 次操作为将 $a_i$ 变成 $a_i\times b_i$。 每次操作结束后,你需要基于修改后的序列 $a$ 建立与 $T$ 形态相同的广义线段树,并求出所有节点的权值和,即 $\sum_{i=1}^{2n-1}M_i$。由于结果可能会非常大,你只需要求出其对 $998\,244\,353$ 取模后的值。

输入输出格式

输入格式


第一行包含一个整数 $n\ (1\le n\le 5\cdot 10^5)$,表示序列 $a$ 和 $b$ 的长度。 第二行包含 $n$ 个整数,其中第 $i$ 个整数定义为 $a_i\ (1 \le a_i < 998\,244\,353)$。 第三行包含 $n$ 个整数,其中第 $i$ 个整数定义为 $b_i\ (1 \le b_i < 998\,244\,353)$。 接下来 $n-1$ 行,其中第 $i$ 行包含两个整数 $X_i,Y_i\ (i<X_i<Y_i\le 2n-1)$,分别表示节点 $i$ 的左右儿子编号。保证输入的广义线段树形态符合题目要求。

输出格式


输出一行用空格间隔的 $n$ 个整数,其中第 $i$ 个整数表示第 $i$ 次修改后的答案对 $998\,244\,353$ 取模后的值。

输入输出样例

输入样例 #1

4
1 2 3 4
2 3 2 3
2 7
3 6
4 5

输出样例 #1

75 207 390 974 

说明

样例中广义线段树的形态和题面中的例子相同。 第一次修改后,$a_1$ 变为 $a_1 \times b_1 = 1 \times 2 = 2$,因而新的 $a = \{2, 2, 3, 4\}$。可以计算出: - $M_7 = a_4 = 4$ - $M_6 = a_3 = 3$ - $M_5 = a_2 = 2$ - $M_4 = a_1 = 2$ - $M_3 = a_1 \times a_2 = 2 \times 2 = 4$ - $M_2 = a_1 \times a_2 \times a_3 = 2 \times 2 \times 3 = 12$ - $M_1 = a_1 \times a_2 \times a_3 \times a_4 = 2 \times 2 \times 3 \times 4 = 48$ 故权值之和为 $M_1 + M_2 + \ldots + M_7 = 75$。 第二次修改后,$a_2$ 变为 $a_2 \times b_2 = 2 \times 3 = 6$。后续的操作与第一次操作类似,此处不再赘述。