#P50558. 「ZJOI2018」线图

「ZJOI2018」线图

题目描述

九条可怜是一个热爱出题的女孩子。

今天可怜想要出一道和图论相关的题。在一张无向图 GG 上,我们可以对它进行一些非常有趣的变换,比如说对偶,又或者说取补。这样的操作往往可以赋予一些传统的问题新的活力。例如求补图的连通性、补图的最短路等等,都是非常有趣的问题。

最近可怜知道了一种新的变换:求原图的线图 (line graph)。对于无向图 G=V,EG = ⟨V, E⟩,它的线图 L(G)L(G) 也是一个无向图:

  • 它的点集大小为 E|E|,每个点唯一对应着原图的一条边。
  • 两个点之间有边当且仅当这两个点对应的边在原图上有公共点(注意不会有自环)。

下图是一个简单的例子,左图是原图,右图是它对应的线图。其中点 11 对应原图的边 (1,2)(1, 2),点 22 对应 (1,4)(1, 4),点 33 对应 (1,3)(1, 3),点 44 对应 (3,4)(3, 4)

line1

经过一些初步的摸索,可怜发现线图的性质要比补图复杂很多,其中突出的一点就是补图的补图会变回原图,而 L(L(G))L(L(G)) 在绝大部分情况下不等于 GG,甚至在大多数情况下它的点数和边数会以很快的速度增长。

因此,可怜想要从最简单的入手,即计算 Lk(G)L^k(G) 的点数(Lk(G)L^k(G) 表示对 GGkk 次线图)。然而遗憾的是,即使是这个问题,对可怜来说还是太困难了,因此她进行了一定的弱化。她给出了一棵 nn 个节点的树 TT,现在她想让你计算一下 Lk(T)L^k (T) 的点数。

输入格式

第一行输入两个整数 n, kn,\ k,表示树的点数以及连续求线图的次数。
接下来 n1n − 1 行每行两个整数 u, vu,\ v 表示树上的一条边。

输出格式

输出一行一个整数,表示答案对 998244353 取模后的值。

样例

5 3
1 2
2 3
2 5
3 4
5

如下图所示,左图为原树,中图为 L(G)L(G),右图为 L2(G)L^2(G)。这儿并未画出 L3(G)L^3(G),但是由于L2(G)L^2(G)55 条边,因此 L3(G)L^3(G) 中有 55 个点。

line2

数据范围与提示

测试点 11 22 33 4,54,5 66 77 88 9,109,10
k=k= 22 33 44 55 66 77 88 99

对于所有数据,2n50002 ≤ n ≤ 5000