#abc133e. [abc133_e]Virus Tree 2

[abc133_e]Virus Tree 2

题目描述

给定一个具有 NN 个顶点和 N1N-1 条边的树。顶点编号为 11NN,第 ii 条边连接了顶点 aia_ibib_i

你有 KK 种颜色的涂料。对于树中的每个顶点,你需要选择其中一种颜色来涂色,以满足以下条件:

  • 如果两个不同的顶点 xxyy 的距离小于或等于 22,则 xxyy 的颜色不同。

有多少种方式可以涂色这棵树?请将结果对 10000000071\\ 000\\ 000\\ 007 取模后输出。

什么是树?树是一种特殊的图。详情请参阅:维基百科“树(图论)”

什么是距离?两个顶点 xxyy 之间的距离是从 xxyy 所需经过的边的最小数目。

约束条件

  • 1N,K1051 \leq N, K \leq 10^5
  • 1ai,biN1 \leq a_i, b_i \leq N
  • 给定的图是一棵树。

输入

从标准输入读入输入数据,数据格式如下:

NN KK a1a_1 b1b_1 a2a_2 b2b_2 .. .. .. aN1a_{N-1} bN1b_{N-1}

输出

输出涂色树的方式数量对 10000000071\\ 000\\ 000\\ 007 取模后的结果。

示例输入 1

4 3
1 2
2 3
3 4

示例输出 1

6

Figure

有六种方式可以涂色这棵树。

示例输入 2

5 4
1 2
1 3
1 4
4 5

示例输出 2

48

示例输入 3

16 22
12 1
3 1
4 16
7 12
6 2
2 15
5 16
14 16
10 11
3 10
3 13
8 6
16 8
9 12
4 3

示例输出 3

271414432