#ddcc2017finald. [ddcc2017_final_d]なめらかな木

[ddcc2017_final_d]なめらかな木

问题描述

给定一棵包含 NN 个节点的树。每个节点都被编号为 1,2,...,N1, 2, ..., N,第 ii 条边连接了节点 ai,bia_i, b_i

考虑在树的每个节点上写入整数 1,2,...,N1, 2, ..., N 中的一个值。设节点 ii 上的值为 cic_i

然而,如果相邻的节点 u,vu, v 存在边 (u,v)(u, v),那么必须满足条件 cucv2|c_u - c_v| ≤ 2

请计算有多少种这样的写入方式,输出结果对 1000000007=109+71000000007 = 10^9 + 7 取模后的余数。

约束条件

  • 1N501 ≤ N ≤ 50
  • 1ai,biN1 ≤ a_i, b_i ≤ N
  • 输入保证是一棵树

输入

输入以以下格式从标准输入中给出。

NN a1a_1 b1b_1 a2a_2 b2b_2 : aN1a_{N-1} bN1b_{N-1}

输出

输出计算得到的答案。


输入示例 1

5
1 2
1 3
1 4
1 5

输出示例 1

24

需要在节点 11 上写入 33


输入示例 2

6
1 2
1 3
1 4
1 5
1 6

输出示例 2

0

输入示例 3

4
1 2
2 3
3 4

输出示例 3

12

输入示例 4

7
1 3
2 3
4 3
5 4
5 6
5 7

输出示例 4

48