Score : $900$ points
Let $N$ be an even number.
There is a tree with $N$ vertices. The vertices are numbered $1, 2, ..., N$. For each $i$ ($1 \leq i \leq N - 1$), the $i$-th edge connects Vertex $x_i$ and $y_i$.
Snuke would like to decorate the tree with ribbons, as follows.
First, he will divide the $N$ vertices into $N / 2$ pairs. Here, each vertex must belong to exactly one pair. Then, for each pair $(u, v)$, put a ribbon through all the edges contained in the shortest path between $u$ and $v$.
Snuke is trying to divide the vertices into pairs so that the following condition is satisfied: "for every edge, there is at least one ribbon going through it." How many ways are there to divide the vertices into pairs, satisfying this condition? Find the count modulo $10^9 + 7$. Here, two ways to divide the vertices into pairs are considered different when there is a pair that is contained in one of the two ways but not in the other.
Input is given from Standard Input in the following format:
$N$ $x_1$ $y_1$ $x_2$ $y_2$ $:$ $x_{N - 1}$ $y_{N - 1}$
Print the number of the ways to divide the vertices into pairs, satisfying the condition, modulo $10^9 + 7$.
4 1 2 2 3 3 4
2
There are three possible ways to divide the vertices into pairs, as shown below, and two satisfy the condition: the middle one and the right one.
4 1 2 1 3 1 4
3
There are three possible ways to divide the vertices into pairs, as shown below, and all of them satisfy the condition.
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