8332: 树异或价值

内存限制:512 MB 时间限制:4 S
题面:传统 评测方式:文本比较 上传者:
提交:1 通过:1

题目描述


曾经有一棵 nn 个节点的有根树,其根节点的编号为 11。同时,小 ωω 有一个大小为 nn 的数组 a1,a2,…,ana1,a2,,an 。

定义数组 aa 的价值为:

                                                                                                             nn

∑∑(ai⊕aj)×depLCA(i,j)

                                                                                                               i=1j=1

相关定义解释:

  •  表示按位异或。
  • depxdepx 表示 xx 的深度,即 xx 到根节点的路径上节点的数量。
  • LCA(i,j)LCA(i,j) 表示 ii 和 jj 的最近公共祖先。

不幸的是,很多年之后小 ωω 忘记了数组 aa。但是他记得:

  • ∀1≤i≤n∀1in0≤ai≤2k−10ai2k1,其中 kk 是一个给定的常数。
  • 在所有 2kn2kn 种可能的 aa 数组中,小 ωω 的 aa 数组的价值是最大的。

小 ωω 并不满足于找到一个合法的 aa 数组,他更想知道有多少种 aa 数组能满足上述条件。答案可能很大,请输出其对 998244353998244353 取模的结果。



Input
输入包含多组测试数据。
第一行包含一个整数 T (1T20),表示测试数据的组数。
对于每组测试数据,
第一行包含两个整数 nk (1n2×105,1k109),表示树与 a 数组的大小,a 数组元素的上界。
第二行包含 n1 个整数p2,p3,,pn (1pi<i), 其中pi 表示树上节点 i 的父亲。
Output
对于每组测试数据,输出一行一个整数,表示合法 a 数组数量对998244353 取模的结果。






输入格式

1 3 3 1 1

输出格式

216

输入样例 复制

1
3 3
1 1

输出样例 复制

216

数据范围与提示


分类标签