#P15371. [UOI2026] Color the Tree
[UOI2026] Color the Tree
题目描述
给定一棵有 个顶点的有根树,树根为顶点 。
对于每个顶点 ,你需要选择一个数字 ,其值为 或 。这样的数字选择方案称为该树的一种涂色。
对于每个顶点 ,考虑树中从顶点 到顶点 的唯一路径。令 为该路径上所有顶点对应的数字 之和,包括顶点 和 自身。
如果所有 两两不同(即没有两个值相等),则称该涂色是正确的。
请你计算这棵树正确的涂色方案数量。
由于答案可能很大,请将其对 取模后输出。
输入格式
第一行包含一个整数 —— 测试数据的组数。
每组测试数据由两行组成。
每组数据的第一行包含一个整数 —— 树中顶点的个数。
第二行包含 个整数 ,其中 是顶点 的父顶点。
这意味着对于每个 从 到 ,顶点 与顶点 之间有一条边,且顶点 离根更近。
保证所有测试数据的 之和不超过 。
输出格式
对于每组测试数据,输出一个整数 —— 该树正确的涂色方案数量对 取模的结果。
输入输出样例 #1
输入 #1
1
3
1 1
输出 #1
4
输入输出样例 #2
输入 #2
1
4
1 2 3
输出 #2
16
输入输出样例 #3
输入 #3
1
7
1 1 2 2 3 3
输出 #3
0
说明/提示
在第一个样例中,顶点 和 是根的子顶点。
以下涂色方案是正确的:,,,。
因此答案为 。
计分
一个顶点 的子顶点是指满足 的顶点 。
叶子是指没有子顶点的顶点。
树中两个顶点之间的距离是指它们之间唯一路径上的边数。
- ( 分): 且 。
- ( 分):每个顶点至多有一个子顶点,且 。
- ( 分):每个顶点到根的距离不超过 条边,且 。
- ( 分):树中至多有一个顶点恰好拥有两个子顶点;其他所有顶点至多有一个子顶点,且 。
- ( 分):只有根可以拥有多于一个子顶点,且 。
- ( 分):叶子的数量不超过 ,且 。
- ( 分):恰好拥有两个子顶点的顶点数量不超过 ,且 。
- ( 分):。
- ( 分):无额外限制。
翻译由 DeepSeek V4 Pro 完成