题目描述
给定一棵 n 个点的无根树。我们希望在一些点对之间修建公交线路,满足任意两个点之间只需要至多两条公交线路就能到达。
形式化地说,考虑树上的所有 2n(n−1) 条两个端点不同的简单路径。对于这些路径的一个子集 S,称它是好的当且仅当:
考虑一张新的图 G,对于一对点 u,v,当且仅当存在 S 中的一条路径 P,满足 u 和 v 都在 P 上,我们会在 u,v 之间连上边权为 1 的无向边。
要求 G 中任意两点之间的距离都不超过 2。
你需要求出有多少个子集 S 是好的。由于答案可能很大,输出对 998244353 取模的结果。
输入格式
第一行,一个正整数 n 表示节点个数。
接下来 n−1 行,每行两个正整数 u,v,表示一条树边 (u,v)。
输出格式
输出一个整数,表示答案对 998244353 取模的结果。
样例 1
输入
3
1 2
2 3
输出
5
所有可行的方案为 {(1,3)}, {(1,3),(1,2)}, {(1,3),(2,3)}, {(1,3),(1,2),(2,3)}, {(1,2),(2,3)}。
样例 2
输入
6
1 2
2 3
2 4
3 5
3 6
输出
27296
数据范围与提示
对于所有的数据,保证 1≤n≤3000。
具体如下:
测试点编号 |
n≤ |
特殊性质 |
1∼3 |
6 |
|
4∼7 |
10 |
8∼10 |
3000 |
A |
11∼14 |
100 |
|
15∼18 |
500 |
19∼20 |
3000 |
特殊性质 A:保证树是一条链。