#P13484. [GCJ 2008 EMEA SemiFinal] Rainbow Trees

[GCJ 2008 EMEA SemiFinal] Rainbow Trees

Description

在图论中,树是一个连通、无向、无环的简单图。一个有 nn 个节点的树总是有 n1n - 1 条边。

树中的一条路径是由一系列互不相同且相连的边组成的(路径中每对相邻的边共享一个顶点)。

考虑一棵有 nn 个顶点和 n1n - 1 条边的树。你可以用 kk 种颜色中的任意一种来给每条边染色。

如果对边的染色满足:在树中任意长度为 2233 的路径上,所有边的颜色都不同(即任意两条相邻的边颜色不同,任意三条连续的边颜色也都不同),则称这种染色为“彩虹染色”。

给定一棵树和颜色数 kk,请你计算有多少种不同的彩虹染色方案。答案对 10000000091000000009 取模。

Input Format

输入的第一行是测试用例的数量 CC。对于每个测试用例,包含如下内容:

  • 第一行包含两个整数,格式为“nn kk”。nn 表示树的节点数,kk 表示可用的颜色数。
  • 接下来的 n1n-1 行,每行包含两个整数“xx yy”,表示有一条边连接节点 xx 和节点 yy。节点编号从 11nn

Output Format

对于每个测试用例,输出一行,格式为“Case #XX: YY”,其中 XX 是测试用例编号(从 11 开始),YY 是该测试用例的答案。

2
4 10
1 2
1 3
1 4
5 3
1 2
2 3
3 4
4 5
Case #1: 720
Case #2: 6

Hint

样例解释

在第一个样例中,树有四个节点。每个节点都与其它三个节点中的一个相连。每对这些边都是相邻的,因此要实现彩虹染色,所有边必须染成不同的颜色。因此有 10×9×8=72010 \times 9 \times 8 = 720 种彩虹染色方案。

在第二个样例中,树本身是一条包含 44 条边的路径,且有 33 种颜色。前三条边必须染成不同的颜色,因此有 3×2×13 \times 2 \times 1 种染色方式,第四条边只有一种选择,所以总共有 66 种彩虹染色方案。

数据范围

  • 1k10000000001 \leq k \leq 1000000000
  • 所有节点编号均在 11nn 之间。

小数据范围(9 分,测试点 1 - 可见)

  • 1C1001 \leq C \leq 100
  • 2n202 \leq n \leq 20

大数据范围(15 分,测试点 2 - 隐藏)

  • 1C401 \leq C \leq 40
  • 2n5002 \leq n \leq 500

由 ChatGPT 4.1 翻译