P16574 [USACO26Open] Perfect Binary Trees
题目描述
**注意:本题的内存限制为 $512$MB,是默认限制的两倍。**
**完美二叉树** 是一棵有根树,其中每个非叶结点恰好有两个孩子,且所有叶子结点到根的距离相等。
**无根完美二叉树** 是一棵无根树,当以它的某个结点为根时,它是一棵完美二叉树。
Bessie 有一棵包含 $N$($1 \le N \le 10^5$)个结点的树。请计算有多少种删除树中边集的方法,使得得到的森林是由若干棵无根完美二叉树构成的集合。由于答案可能很大,请输出对 $10^9 + 7$ 取模的结果。
输入格式
第一行包含一个整数 $T$($1 \le T \le 100$),表示独立测试用例的数量。
每个测试用例的第一行包含一个整数 $N$。
接下来每个测试用例的 $N - 1$ 行,每行包含两个整数 $u_i$ 和 $v_i$($1 \le u_i, v_i \le N$),表示结点 $u_i$ 与 $v_i$ 之间的一条边。
保证对于每个测试用例,给出的边构成一棵包含 $N$ 个结点的树。
此外,所有测试用例的 $N$ 之和不超过 $2 \cdot 10^5$。
输出格式
对于每个测试用例,输出一个整数:删除边集后,得到的森林是由无根完美二叉树构成的集合的方案数,对 $10^9 + 7$ 取模。
说明/提示
在第一个测试用例中,Bessie 可以删除以下任意边集,使得得到的森林由完美二叉树构成:
1. $(2, 6)$
2. $(1, 2), (2, 3), (2, 6)$
3. $(1, 2), (2, 3), (4, 6)$
4. $(1, 2), (2, 3), (5, 6)$
5. $(1, 2), (4, 6), (5, 6)$
6. $(2, 6), (4, 6), (5, 6)$
7. $(2, 3), (4, 6), (5, 6)$
8. $(1, 2), (2, 3), (2, 6), (4, 6), (5, 6)$
第一个边集得到两棵高度为 $1$ 的子树,最后一个边集得到六棵高度为 $0$ 的子树,其余边集得到三棵高度为 $0$ 的子树和一棵高度为 $1$ 的子树。
### 计分规则
- 输入 $2$-$3$:$N \le 15$
- 输入 $4$-$5$:没有结点的度数超过 $2$。
- 输入 $6$-$9$:$N \le 1000$,所有测试用例的 $N$ 之和不超过 $2000$,且没有结点的度数超过 $3$。
- 输入 $10$-$13$:没有结点的度数超过 $3$。
- 输入 $14$-$21$:无额外限制。
翻译由 DeepSeek V4 Pro 完成