时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒
空间限制:C/C++/Rust/Pascal 512 M,其他语言1024 M
64bit IO Format: %lld
题目描述
Froggy 有一棵

个点的无根树

,点带点权,初始点

的点权为

。
Froggy 可以依次进行不超过

次以下操作:
1. 选择若干个两两不同的点

,满足对于

,树

上存在边连接点

和点

。
2. 在

中选择偶数个点

(可以重复选择),对于

,依次交换点

和点

的点权。
记录

为所有操作结束后点

的点权,求 Froggy 可以得到多少个不同的序列

,答案对

取模。
输入描述:
第一行一个正整数
,表示数据组数。
对于每组数据,第一行一个整数
表示树的点数。
接下来
行,每行两个正整数
,表示树
上一条边的两个端点。
保证单个测试点内每组数据中
的和不超过
。
输出描述:
对于每组数据,一行一个整数表示答案对
取模后的结果。
示例1
输入
复制
3
5
1 2
1 3
1 4
1 5
6
1 2
1 3
1 4
2 5
2 6
6
1 2
2 3
2 4
3 5
4 6