小红树上染色
时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒
空间限制:C/C++/Rust/Pascal 256 M,其他语言512 M
64bit IO Format: %lld

题目描述

小红拿到了一棵树,初始所有节点都是白色。
小红希望染红若干个节点,使得不存在两个白色节点相邻。
小红想知道,共有多少种不同的染色方案?
由于答案过大,请对10^9+7取模。

输入描述:

第一行输入一个正整数n,代表节点数量。
接下来的n-1行,每行输入两个正整数u,v,代表节点u和节点v有一条边连接。
1\leq n \leq 10^5
1\leq u,v \leq n

输出描述:

一个整数,代表染色的方案数。
示例1

输入

复制
2
1 2

输出

复制
3

说明

第一个方案:只染 1 号节点。
第二个方案:只染 2 号节点。
第三个方案:同时染 1 号和 2 号节点。
请注意,如果每个节点都不染色是不合法的,因为这样会导致两个白色节点相邻。