atcoder#ABC248G. [ABC248G] GCD cost on the tree

[ABC248G] GCD cost on the tree

题目描述

N N 頂点からなる無向木が与えられます。
頂点を順に頂点 1 1 , 頂点 2 2 , \ldots , 頂点 N N とすると、 1 i N1 1\leq\ i\leq\ N-1 について、i i 番目の辺は頂点 Ui U_i と頂点 Vi V_i を結んでいます。
また、それぞれの頂点には正整数が割り当てられており、 具体的には頂点 i i には Ai A_i が割り当てられています。

相異なる 2 2 頂点 s s , t t 間のコスト C(s,t) C(s,t) が次のようにして定められます。

頂点 s s と頂点 t t を結ぶ単純パス上の頂点を順に p1(=s) p_1(=s) , p2 p_2 , \ldots , pk(=t) p_k(=t) とする。 ここで、k k はパス上の(端点含む)頂点数である。
このとき、$ C(s,t)=k\times\ \gcd\ (A_{p_1},A_{p_2},\ldots,A_{p_k}) $ で定める。
ただし、gcd (X1,X2,, Xk) \gcd\ (X_1,X_2,\ldots,\ X_k) X1,X2,, Xk X_1,X_2,\ldots,\ X_k の最大公約数を表す。

$ \displaystyle\sum_{i=1}^{N-1}\sum_{j=i+1}^N\ C(i,j) $ を 998244353 998244353 で割ったあまりを求めてください。

输入格式

入力は以下の形式で標準入力から与えられる。

N N A1 A_1 A2 A_2 \cdots AN A_N U1 U_1 V1 V_1 U2 U_2 V2 V_2 \vdots UN1 U_{N-1} VN1 V_{N-1}

输出格式

$ \displaystyle\sum_{i=1}^{N-1}\sum_{j=i+1}^N\ C(i,j) $ を 998244353 998244353 で割ったあまりを出力せよ。

题目大意

题目描述

给定一颗树有 nn 个结点,每个结点上有一个权值 aia_i, 对于每条至少包含两个点简单路径,它的贡献为 路径上点的数量(包括端点)×\times路径上所有点的 aia_i 的最大公约数(gcd)。
求所有简单路径的贡献之和,对 998244353998244353 取模。

输入格式

第一行输入 nn,随后一行 nn 个正整数aia_i
然后 n1n-1 行每行一条边 (ui,vi)(u_i,v_i) 表示这棵树。

输出格式

输出答案所求,mod 998244353\bmod \ 998244353

样例解释 #1

C(i,j)C(i,j) 表示从 iijj 的路径的贡献。
C(1,2)=2×gcd(24,30)=12C(1,2)=2\times \gcd(24,30)=12
C(1,3)=2×gcd(24,28)=8C(1,3)=2\times \gcd(24,28)=8
C(1,4)=3×gcd(24,28,7)=3C(1,4)=3\times \gcd(24,28,7)=3
C(2,3)=3×gcd(30,24,28)=6C(2,3)=3\times \gcd(30,24,28)=6
C(2,4)=4×gcd(30,24,28,7)=4C(2,4)=4\times \gcd(30,24,28,7)=4
C(3,4)=2×gcd(28,7)=14C(3,4)=2\times \gcd(28,7)=14
总和为 $\displaystyle\sum_{i=1}^{3}\sum_{j=i+1}^4 C(i,j)=(12+8+3)+(6+4)+14=47$.

数据范围

2n1052 \le n \le 10^5
1ai1051 \le a_i \le 10^5

4
24 30 28 7
1 2
1 3
3 4
47
10
180 168 120 144 192 200 198 160 156 150
1 2
2 3
2 4
2 5
5 6
4 7
7 8
7 9
9 10
1184

提示

制約

  • 2  N  105 2\ \leq\ N\ \leq\ 10^5
  • 1  Ai 105 1\ \leq\ A_i\leq\ 10^5
  • 1 Ui < Vi N 1\leq\ U_i\ <\ V_i\leq\ N
  • 入力は全て整数である。
  • 与えられるグラフは木である。

Sample Explanation 1

頂点 1 1 と頂点 2 2 、頂点 1 1 と頂点 3 3 、頂点 3 3 と頂点 4 4 がそれぞれ直接辺で結ばれています。 よって、コストはそれぞれ次のように求められます。 - C(1,2)=2× gcd(24,30)=12 C(1,2)=2\times\ \gcd(24,30)=12 - C(1,3)=2× gcd(24,28)=8 C(1,3)=2\times\ \gcd(24,28)=8 - C(1,4)=3× gcd(24,28,7)=3 C(1,4)=3\times\ \gcd(24,28,7)=3 - C(2,3)=3× gcd(30,24,28)=6 C(2,3)=3\times\ \gcd(30,24,28)=6 - C(2,4)=4× gcd(30,24,28,7)=4 C(2,4)=4\times\ \gcd(30,24,28,7)=4 - C(3,4)=2× gcd(28,7)=14 C(3,4)=2\times\ \gcd(28,7)=14 求める値は $ \displaystyle\sum_{i=1}^{3}\sum_{j=i+1}^4\ C(i,j)=(12+8+3)+(6+4)+14=47 $ を 998244353 998244353 で割ったあまりの 47 47 となります。