AT_arc101_c [ARC101E] Ribbons on Tree

Description

[problemUrl]: https://atcoder.jp/contests/arc101/tasks/arc101_c $ N $ を偶数とします。 $ N $ 頂点の木があります。 頂点には $ 1,\ 2,\ ...,\ N $ と番号が振られています。 各 $ i $ ($ 1\ \leq\ i\ \leq\ N\ -\ 1 $) について、$ i $ 番目の辺は頂点 $ x_i $ と $ y_i $ を結んでいます。 すぬけ君は、次のようにして木をリボンで飾りつけようと思っています。 まず、$ N $ 個の頂点を $ N\ /\ 2 $ 組のペアに分けます。 このとき、各頂点はちょうど $ 1 $ つのペアに属さなければなりません。 次に、各ペア $ (u,\ v) $ について、$ 1 $ 本のリボンを $ u $-$ v $ 間の最短パスに含まれるすべての辺を通るように張ります。 すぬけ君はペアの分け方を工夫し、「どの辺にも少なくとも $ 1 $ 本のリボンが張られている」という条件が成り立つようにしようとしています。 条件が成り立つようなペアの分け方は何通りでしょうか? $ 10^9\ +\ 7 $ で割った余りを求めてください。 ただし、$ 2 $ 通りのペアの分け方が異なるとは、あるペアが一方には含まれるが他方には含まれないことを言います。

Input Format

N/A

Output Format

N/A

Explanation/Hint

### 制約 - $ N $ は偶数である。 - $ 2\ \leq\ N\ \leq\ 5000 $ - $ 1\ \leq\ x_i,\ y_i\ \leq\ N $ - 与えられるグラフは木である。 ### Sample Explanation 1 ペアの分け方は次図の $ 3 $ 通りであり、右側の $ 2 $ 通りが条件を満たします。 !\[\](https://img.atcoder.jp/arc101/2d7584d2e0736f746aa9d54e1bf31e28.png) ### Sample Explanation 2 ペアの分け方は次図の $ 3 $ 通りであり、すべて条件を満たします。 !\[\](https://img.atcoder.jp/arc101/2de530ed2e64d0161ee6b989d1946261.png)