#x1095. 溯源

    ID: 10330 远端评测题 5000ms 512MiB 尝试: 2 已通过: 0 难度: 10 上传者: 标签>2025“钉耙编程”中国大学生算法设计春季联赛(4)

溯源

Problem Description

小 hua 学习了树,并发现一个草履虫家族可以用树的结构很好的刻画。

有一个根节点称为草履虫祖宗($1$ 号节点),之后会有若干后代,构成一个有根树的结构(每个草履虫有唯一的父亲 $f_u$)。

每个草履虫(节点)还有一个价值 $a_u$。

小 hua 想把草履虫家族割裂,她可以选择删掉若干条树边(共 $2^{n-1}$ 种方案),求其中**合法**的方案的**权值**和。

其中:

- 一个方案合法,当且仅当,每个连通块中,在原本树中构成**直接祖先后代关系**的草履虫的价值差 $\leq k$。
- 一个方案的权值定义为,所有连通块大小的**乘积**。
- 称 $u,v$ 构成直接祖先后代关系,当且仅当 $u=f(f(...f(v)))$ 或 $v=f(f(...f(u)))$,题目即要求同一连通块中所有这样的 $u,v$ 均满足 $|a_u-a_v|\leq k$。

Input

第一行一个正整数 $T$ 表示测试数据组数,对于之后的每组测试数据:

- 第一行两个正整数 $n,k$,表示树的节点个数和极差限制。
- 第二行 $n$ 个正整数表示各个点的点权。
- 第三行 $n-1$ 个正整数分别表示 $f_2,f_3,\cdots ,f_n$,保证 $f_i$ 小于 $i$。

Output

一个整数表示所有合法方案的权值和,对 $10^9+7$ 取模。
1 5 3 1 2 4 1 5 1 1 2 2
36

Hint


对于所有数据,$1\leq T\leq 6, n\leq 5000, 1\leq a_i,k\leq 10^9$。