#luoguP10706. 悲哀(Sorrow)

悲哀(Sorrow)

题目背景

你是天使,你是天使, 于光与圣歌中降临。于光与圣歌中降临。 我是恶魔,我是恶魔, 从血与污泥中爬出。从血与污泥中爬出。 我想拥抱你,我想拥抱你, 但是害怕血,但是害怕血, 染红你洁白的羽翼。染红你洁白的羽翼。

题目描述

给出一棵有 nn 个节点且以 11 为根节点的树,每个节点有两个权值 ai,bia_i,b_i(1≤i≤n1\le i\le n)。aia_i 已经给出,bib_i 初始为 00。

现在对于每一对节点 (u,v)(u,v)(1≤u<v≤n1\le u<v\le n),设 x=LCA⁡(u,v)x=\operatorname{LCA}(u,v),如果 gcd⁡(au,av)>1\gcd(a_u,a_v)>1 那么 bx←bx+au×avb_x\gets b_x+a_u\times a_v,否则不做任何操作。

对于每个 1≤i≤n1\le i\le n 求出 bi mod 998244353b_i\bmod998244353。

输入格式

第一行一个整数 nn,表示有 nn 个节点。

第二行 nn 个正整数,表示 a1,a2…ana_1,a_2\dots a_n。

接下来 n−1n-1 行,每行两个正整数 u,vu,v,表示节点 uu 和节点 vv 之间有一条边。

输出格式

输出共 nn 行,每行一个整数。

第 ii 行表示 bib_i 对 998244353998244353 取模后的结果。

8
3 7 2 2 2 3 72 24 
1 2
1 3
1 4
4 5
2 6
5 7
4 8

785
0
0
1972
144
0
0
0
15
73 83 31 9514 1189 43 79 2 2 1798 5063 2 5 2573 53 
1 2
2 3
1 4
4 5
1 6
3 7
5 8
5 9
6 10
7 11
10 12
9 13
7 14
13 15

23952214
633788
79763
38056
4
0
13027099
0
0
3596
0
0
0
0
0

提示

【样例解释】

建出的树如图。

有以下贡献:

  • 对 11 号节点:

(3,4)(3,4) 贡献 44。

(3,5)(3,5) 贡献 44。

(3,7)(3,7) 贡献 144144。

(3,8)(3,8) 贡献 4848。

(1,6)(1,6) 贡献 99。

(1,7)(1,7) 贡献 216216。

(1,8)(1,8) 贡献 7272。

(6,7)(6,7) 贡献 216216。

(6,8)(6,8) 贡献 7272。

总共 785785。

  • 对 44 号节点:

(4,5)(4,5) 贡献 44。

(4,7)(4,7) 贡献 144144。

(4,8)(4,8) 贡献 4848。

(5,8)(5,8) 贡献 4848。

(7,8)(7,8) 贡献 17281728。

总共 19721972。

  • 对 55 号节点:

(5,7)(5,7) 贡献 144144。

总共 144144。

其他节点显然都为 00。

【数据范围】

subtask 编号 nn aia_i 特殊性质 分值
00 100100 ≤1000\le 1000 −- 55
11 20002000 ≤105\le 10^5 1010
22 10510^5 ≤5×105\le 5 \times 10^5 AA 2525
33 2×1052 \times 10^5 BB 3030
44 −-

特殊性质 AA:保证所有的 aia_i 随机生成。

特殊性质 BB:保证树的形态是一棵完全二叉树。

对于 100%100\% 的数据,1≤n≤2×1051\le n\le2\times10^5,1≤ai≤5×1051\le a_i\le5\times10^5。

特别提醒:本题使用 subtask 捆绑测试,只有通过一个子任务的全部测试点才能获得此子任务的分数。