牛牛染颜色
时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒
空间限制:C/C++/Rust/Pascal 128 M,其他语言256 M
64bit IO Format: %lld

题目描述

牛牛最近得到了一颗树,根是 1 号节点,他想要把这颗树染色。
每个节点可以染成白色和黑色,牛牛认为一种染色方案是好的当且仅当任意两个黑点的 lca(最近公共祖先)的颜色也是黑色的。
求一共有多少种好的染色的方案。

即:求树上有多少个点集  对于  满足:
答案可能很大,请输出答案对 取模后的结果。

输入描述:

第一行一个整数 ,表示这棵树有  个节点。
接下来  行,每行两个整数  表示  之间有一条边。

输出描述:

一行一个整数,表示所有合法的点的集合数量。
示例1

输入

复制
4
1 2
2 3
2 4

输出

复制
14

说明

\varnothing ,\{1\},\{2\},\{3\},\{4\},\{1,2\},\{1,3\},\{1,4\},\{2,3\},\{2,4\},\{1,2,3\},\{1,2,4\},\{2,3,4\},\{1,2,3,4\}
共计14个集合满足题意。
注意:空集也算进答案里面!
示例2

输入

复制
6
1 2
1 3
1 4
2 5
5 6

输出

复制
42

备注: