题目描述
给定一棵 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 解释】
对于对于第一个样例,所有可行的方案为 {(1,3)},{(1,3),(1,2)},{(1,3),(2,3)},{(1,3),(1,2),(2,3)},{(1,2),(2,3)}。
【样例 #3】
见附件中 bus/bus3.in
与 bus/bus3.ans
。
这个样例满足测试点 11∼14 的条件限制。
【样例 #4】
见附件中 bus/bus4.in
与 bus/bus4.ans
。
这个样例满足测试点 19∼20 的条件限制。
【数据范围】
对于所有的数据,保证 1≤n≤3000。
具体如下:
测试点编号 |
n≤ |
特殊性质 |
1∼3 |
6 |
无 |
4∼7 |
10 |
8∼10 |
3000 |
A |
11∼14 |
100 |
无 |
15∼18 |
500 |
19∼20 |
3000 |
特殊性质 A:保证树是一条链。