atcoder#ARC101C. [ARC101E] Ribbons on Tree

[ARC101E] Ribbons on Tree

题目描述

N N を偶数とします。

N N 頂点の木があります。 頂点には 1, 2, ..., N 1,\ 2,\ ...,\ N と番号が振られています。 各 i i (1  i  N  1 1\ \leq\ i\ \leq\ N\ -\ 1 ) について、i i 番目の辺は頂点 xi x_i yi y_i を結んでいます。

すぬけ君は、次のようにして木をリボンで飾りつけようと思っています。

まず、N N 個の頂点を N / 2 N\ /\ 2 組のペアに分けます。 このとき、各頂点はちょうど 1 1 つのペアに属さなければなりません。 次に、各ペア (u, v) (u,\ v) について、1 1 本のリボンを u u -v v 間の最短パスに含まれるすべての辺を通るように張ります。

すぬけ君はペアの分け方を工夫し、「どの辺にも少なくとも 1 1 本のリボンが張られている」という条件が成り立つようにしようとしています。 条件が成り立つようなペアの分け方は何通りでしょうか? 109 + 7 10^9\ +\ 7 で割った余りを求めてください。 ただし、2 2 通りのペアの分け方が異なるとは、あるペアが一方には含まれるが他方には含まれないことを言います。

输入格式

入力は以下の形式で標準入力から与えられる。

N N x1 x_1 y1 y_1 x2 x_2 y2 y_2 : : xN  1 x_{N\ -\ 1} yN  1 y_{N\ -\ 1}

输出格式

条件が成り立つようなペアの分け方は何通りか? 109 + 7 10^9\ +\ 7 で割った余りを出力せよ。

题目大意

题目描述

给定一个大小为 nn 的树,保证 nn 为偶数且小于 50005000

您需要给树上的点两两配对,对于一组对子 (u,v)(u,v),在树上将 uvu\to v 的路径染色,定义一个配对方案合法当且仅当所有边都有颜色。

求方案数对 109+710^9+7 取模。

说明/提示

$\begin{array}{l}2\le N\le 5000\\2\mid N\\\text{保证输入的一定是一棵树}\end{array}$

样例1解释

样例2解释

合法的33种情况如下:

4
1 2
2 3
3 4
2
4
1 2
1 3
1 4
3
6
1 2
1 3
3 4
1 5
5 6
10
10
8 5
10 8
6 5
1 5
4 8
2 10
3 6
9 2
1 7
672

提示

制約

  • N N は偶数である。
  • 2  N  5000 2\ \leq\ N\ \leq\ 5000
  • 1  xi, yi  N 1\ \leq\ x_i,\ y_i\ \leq\ N
  • 与えられるグラフは木である。

Sample Explanation 1

ペアの分け方は次図の 3 3 通りであり、右側の 2 2 通りが条件を満たします。 ![](https://img.atcoder.jp/arc101/2d7584d2e0736f746aa9d54e1bf31e28.png)

Sample Explanation 2

ペアの分け方は次図の 3 3 通りであり、すべて条件を満たします。 ![](https://img.atcoder.jp/arc101/2de530ed2e64d0161ee6b989d1946261.png)