D - なめらかな木 解説

実行時間制限: 2 sec / メモリ制限: 256 MB

配点 : 11001100

問題文

NN 頂点の木が与えられます。 頂点には番号 1,2,...,N1, 2, ..., N がついており、ii 番目の辺は頂点 ai,bia_i, b_i をつないでいます。

木の頂点に整数 1,2,...,N1, 2, ..., N をそれぞれ 11 個ずつ書き込むことを考えます。 頂点 ii に書き込んだ値を cic_i とします。

ただし、頂点 u,vu, v が隣り合っている、つまり辺 (u,v)(u, v) が存在するならば、 cucv2|c_u - c_v| ≦ 2 を満たしていないといけません。(10:53)変数名を修正しました

このような書き込み方は何通りあるでしょうか、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}

出力

求めた答えを出力してください。


入力例 1Copy

Copy
5
1 2
1 3
1 4
1 5

出力例 1Copy

Copy
24

頂点 1133 を書き込む必要があります。


入力例 2Copy

Copy
6
1 2
1 3
1 4
1 5
1 6

出力例 2Copy

Copy
0

入力例 3Copy

Copy
4
1 2
2 3
3 4

出力例 3Copy

Copy
12

入力例 4Copy

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

出力例 4Copy

Copy
48


2025-03-14 (金)
02:57:13 +00:00