#ATagc066e. [AGC066E] Sliding Puzzle On Tree
[AGC066E] Sliding Puzzle On Tree
题目描述
给定一棵有 个顶点的树,顶点编号为 到 。树的第 条边连接顶点 和顶点 。
对于 ,请解决以下问题:
有 个编号为 的石子,第 个石子初始放在顶点 。你可以重复进行如下操作:
- 选择一条连接顶点 和 的树边,且 上有石子而 上没有石子。将 上的石子移动到 上。
求所有可能的石子最终分布方案数,答案对 取模。注意,如果某个编号的石子所在顶点不同,则认为是不同的分布方案。
给定 组测试数据,请分别输出每组的答案。
输入格式
输入以如下格式从标准输入读入:
每组测试数据格式如下:
输出格式
请输出 行,每行对应一组测试数据,对于每组数据,输出 的答案,使用半角空格分隔。
样例 1
输入
1
4
1 2
1 3
1 4
输出
4 12 4 1
样例 2
输入
4
1
5
1 4
5 2
3 4
2 1
7
1 7
2 7
5 6
4 1
1 6
3 6
10
1 2
2 3
3 4
4 5
5 6
2 7
3 8
4 9
5 10
输出
1
5 10 10 5 1
7 42 210 840 84 7 1
10 90 720 5040 30240 151200 604800 720 10 1
说明/提示
限制
- 给定的图一定是一棵树。
- 所有测试数据中 的总和不超过 。
样例解释 1
用编号为 的石子所在顶点的编号序列表示石子的分布方案时:
- 时,可能的分布方案为 ,共 种。
- 时,可能的分布方案为 $(1,2), (1,3), (1,4), (2,1), (2,3), (2,4), (3,1), (3,2), (3,4), (4,1), (4,2), (4,3)$,共 种。
- 时,可能的分布方案为 ,共 种。
- 时,可能的分布方案为 ,共 种。
对于 的情况,可以参考下图:

样例解释 2
每组测试数据对应的树结构如下图所示:

由 ChatGPT 4.1 翻译