#P12765. 树上LCM

树上LCM

树上LCM

Problem Description

给你一棵由 nn 个节点的树和一个数 xx,其中每个节点都有一个值。有多少条简单路径的值的 lcmlcmxx? 一条简单路径的 lcmlcm 的定义为路径上所有节点的值的 lcmlcm

Input

第一行输入一个整数 TT (1T2001 \le T \le 200),表示测试的总数。 对于每个测试样例, 第一行输入两个数 nn1n1051 \leq n \leq 10^5), xx2x1072 \leq x \leq 10^7),表示节点的个数和目标值 xx。 接下来 n1n - 1 行,每行两个数 uuvv,表示节点 uuvv 之间存在一条边。 接下来一行 nn 个数 a1,a2,,ana_1, a_2, \cdots, a_n1ai1091 \leq a_i \leq 10^9),每个节点的值。 保证样例中 nn 的总和不超过 3×1053 \times 10^5

Output

对于每个样例,输出一个数,满足条件的路径的数量。

Sample Input

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

Sample Output

6
5

Hint

对于第一个样例,任何路径都满足条件。因此答案为 3×2=63 \times 2 = 6。 对于第二个样例,满足条件的路径为 [1, 1]、[1, 2]、[1, 4]、[1, 5]、[4, 5]。因此答案为 55

Source

2025“钉耙编程”中国大学生算法设计暑期联赛(1)