给定一棵有 n 个节点的树,每个节点 i 具有权值 ai。定义一条路径的权值为这条路径上所有节点权值的 gcd(ab1,ab2,…,abh),其中路径上的节点编号为 b1,b2,…,bh。当路径只有一个节点时,其路径权值即为该节点的权值。要求统计树中有多少条简单路径的权值为偶数。注意:我们认为 u→v 和 v→u 是同一条路径,且 u→u 也算一条路径。
本题的核心在于利用最大公约数为偶数的充要条件,即路径上所有节点必须均为偶数,将原问题转化为仅考虑偶数节点构成的子图,然后在该子图中寻找各个连通块,对于每个连通块中包含的偶数节点数记为 k,简单路径数为 2k(k+1),最后将所有连通块的路径数累加得到答案。
对于一条路径的权值为gcd(ab1,ab2,ab3,...,abh),其中b1,b2,b3,...,bk是路径上的节点编号,当路径上只有一个点路径权值即为该点的点权。
请你统计树中有多少条简单路径的权值为偶数。
我们认为u→v和v→u 是同一条路径。特别的,我们认为u→u也是一条路径
第一行一个整数n(1≤n≤2×105),表示树的结点总数。
第二行n个整数,第i个为ai(1≤ai≤106),表示结点的权值。
接下来n−1行,每行两个整数u,v(1≤u,v≤n;u=v),表示结点u和结点v之间通过一条无向边连接。
一个整数,表示有多少条简单路径的权值为偶数。
输入
4
12 16 3 4
1 2
1 3
2 4
输出
6