编程题
### 问题描述
给定一棵有根树,节点编号从 $1$ 到 $n$。你需要为每个节点染色,满足以下条件:
1. 树中的每个节点可以染成两种颜色之一:$0$ 或 $1$。
2. 相邻的两个节点(即有一条边直接相连的节点)不能都被染成颜色 $1$。
请计算满足以上条件的染色方案的数量。
### 输入格式
第一行包含一个整数 $n$,$(1 \leq n \leq 10^5)$,表示树的节点数。
接下来的 $n-1$ 行,每行包含两个整数 $u$ 和 $v$,$(1 \leq u, v \leq n)$,表示树上存在一条边连接节点 $u$ 和节点 $v$。
### 输出格式
输出一个整数,表示满足条件的染色方案的数量。由于结果可能很大,输出结果模 $10^9+7$。
### 样例输入
```
5
1 2
1 3
3 4
3 5
```
### 样例输出
```
14
```
### 说明
首先,我们可以将输入数据的树结构可视化如下:
```txt
1
/ \
2 3
/ \
4 5
```
下面是染色的一些可能方案:
1. $1-0, 2-1, 3-1, 4-0, 5-0$
2. $1-1, 2-0, 3-0, 4-1, 5-1$
3. $1-1, 2-0, 3-0, 4-0, 5-1$
4. $1-1, 2-0, 3-0, 4-1, 5-0$
5. $1-0, 2-1, 3-0, 4-1, 5-1$
6. $1-0, 2-1, 3-0, 4-0, 5-1$
7. $1-0, 2-1, 3-0, 4-1, 5-0$
8. $...$(其他方案)
当我们尝试所有可能的染色方案时,我们找到了总共 14 种满足条件的染色方案。
这就是为什么输出是 14 的原因。
### 评测数据规模
- 对于 $30$% 的评测数据,树的节点数 $n \leq 50$。
- 对于 $60$% 的评测数据,树的节点数 $n \leq 500$。
- 对于 $100$% 的评测数据,树的节点数 $n \leq 10^5$。