在成功欺骗投资者后,Melon Usk 筹集了足够的资金收购了 Bitter Inc,现在他对这家公司有着宏大的计划。首先,Melon 想要精简 Bitter 的员工人数,为此,他需要了解哪些员工对是“相似”的。
Bitter Inc 的管理层遵循有根树结构:员工编号从 $1$ 到 $n$,每位员工(除 Melon 即员工 $1$ 外)都有且仅有一位直接上级,并且直接或间接地由 Usk 先生本人管理。由某位员工直接管理的员工是有序的,且每位员工 $v$ 都分配有一个项目 $p_v$。对于给定的员工 $v$,我们定义他们的团队为所有直接或间接向 $v$ 汇报的员工(包括 $v$ 本人)。如果所有从事项目 $p$ 的员工都在 $v$ 的团队中,我们称项目 $p$ 由 $v$ 拥有。
最初,Melon 认为如果员工 $x$ 和 $y$ 的团队可以相互重叠,且在管理结构和匹配员工所从事的项目 $p_v$ 上完全一致,则称他们相似。然而,由此产生的相似员工对数量不足(考虑到 Usk 计划裁员的数量),因此他决定通过允许所比较员工拥有的项目之间进行转换来放宽相似性的定义。
形式化地,对于员工 $v$,记他们的团队为 $T_v$,由 $v$ 拥有的项目为 $O_v$。考虑两名员工 $x$ 和 $y$ 以及 $O_x$ 和 $O_y$ 之间的一个双射 $f$;想象取所有 $v \in T_x$ 使得 $p_v \in O_x$,并将 $p_v$ 设置为 $f(p_v) \in O_y$。如果存在这样的 $f$,使得在上述变换后 $x$ 的团队变得与 $y$ 的团队相同*,则 Melon 认为 $x$ 和 $y$ 是相似的。注意,如果 $x$ 和 $y$ 的团队在没有任何更改的情况下相同且 $x = y$,则 $O_x$ 和 $O_y$ 必须为空,事实上根据 Melon 的定义,这些员工是相似的。
如果发现某位员工与许多其他员工相似,那么他们可能会面临令人不快的惊喜……
你是一名刚被 Melon 本人聘用的实习生。请编写一个程序,为每位员工 $v$ 计算与 $v$ 相似的其他员工的数量。
输入格式
输入的第一行包含测试用例的数量 $Z$ ($1 \le Z \le 100\,000$)。接下来是各测试用例的描述。
每个测试用例的第一行包含员工人数 $n$ ($1 \le n \le 400\,000$)。
每个测试用例的第二行包含 $n$ 个数字 $p_v$ ($1 \le p_v \le n$),表示相应员工正在从事的项目。
接下来的 $n$ 行描述了汇报结构:第 $i$ 行以一个整数 $d_i$ ($0 \le d_i < n$) 开头,表示 $i$ 的直接下属人数;随后是 $d_i$ 个数字 $v_{i,j}$ ($1 \le v_{i,j} \le n$),表示下属的 ID。注意,下属的顺序很重要。
所有测试用例中的员工总数不超过 $800\,000$。
输出格式
对于每个测试用例,输出一行,包含 $n$ 个数字 $c_v$ —— 与 $v$ 相似的其他员工(不包括 $v$)的数量。
*形式化地,如果两个团队之间存在双射 $g$,使得对于任何节点 $a$ 和整数 $k$,$a$ 的第 $k$ 个孩子通过 $g$ 映射到 $g(a)$ 的第 $k$ 个孩子,则称两个团队相同(注意孩子顺序很重要)。
样例
输入 1
1 20 3 1 2 1 1 2 5 2 5 5 2 9 8 9 9 8 9 7 6 4 5 18 15 12 2 7 2 3 4 2 5 6 0 0 0 2 8 9 2 10 11 0 0 0 2 13 14 0 0 2 16 17 0 0 2 19 20 0 0 0
输出 1
0 1 0 1 1 1 1 0 1 1 1 1 1 1 1 1 1 0 1 1
说明
样例测试用例描绘如下,其中不同的项目显示为不同的颜色。
相似的员工对有:$(2, 7), (4, 5), (6, 11), (9, 10), (12, 15), (13, 16), (14, 17)$ 和 $(19, 20)$。
注意 $3$ 和 $8$ 不相似,因为它们在一个项目上不同(红色与绿色),而这些项目并非由 $3$ 和 $8$ 拥有。然而,这些项目由 $2$ 和 $7$ 拥有,事实上定义一个将红色映射到绿色的双射 $f$ 表明 $2$ 和 $7$ 是相似的。$18$ 与任何员工都不相似,这可以从 $|O_{18}| = 3$ 这一事实推断出来,而具有相同团队结构的其他员工最多拥有 $1$ 个项目(因此不存在双射)。如果 $x$ 拥有 $p_x$ 且 $y$ 拥有 $p_y$($19$ 和 $20$ 的情况),或者如果 $p_x = p_y$(其他几对的情况,例如 $4$ 和 $5$),则没有下属的员工 $x$ 和 $y$ 也是相似的。