Problem X
Rooted Subtrees
A tree is a connected, acyclic, undirected graph with $n$ nodes and $n - 1$ edges. There is exactly one path between any pair of nodes. A rooted tree is a tree with a particular node selected as the root.
Let $T$ be a tree and $T_ r$ be that tree rooted at node $r$. The subtree of $u$ in $T_ r$ is the set of all nodes $v$ where the path from $r$ to $v$ contains $u$ (including $u$ itself). In this problem, we denote the set of nodes in the subtree of $u$ in the tree rooted at $r$ as $T_ r(u)$.
You are given $q$ queries. Each query consists of two (not necessarily different) nodes, $r$ and $p$. A set of nodes $S$ is “obtainable” if and only if it can be expressed as the intersection of a subtree in the tree rooted at $r$ and a subtree in the tree rooted at $p$. Formally, a set $S$ is “obtainable” if and only if there exist nodes $u$ and $v$ where $S = T_{r}(u) \cap T_{p}(v)$.
For a given pair of roots, count the number of different non-empty obtainable sets. Two sets are different if and only if there is an element that appears in one, but not the other.
Input
The first line contains two space-separated integers $n$ and $q$ $(1 \le n, q \le 2 \cdot 10^5)$, where $n$ is the number of nodes in the tree and $q$ is the number of queries to be answered. The nodes are numbered from $1$ to $n$.
Each of the next $n - 1$ lines contains two space-separated integers $u$ and $v$ ($1 \le u, v \le n$, $u \neq v$), indicating an undirected edge between nodes $u$ and $v$. It is guaranteed that this set of edges forms a valid tree.
Each of the next $q$ lines contains two space-separated integers $r$ and $p$ ($1 \le r,p \le n$), which are the nodes of the roots for the given query.
Output
For each query output a single integer, which is the number
of distinct obtainable sets of nodes that can be generated by
the above procedure.
Sample Explanation
The possible rootings of the first tree are
![\includegraphics[width=0.90\textwidth ]{trees.png}](/problems/rootedsubtrees/file/statement/en/img-0001.png)
Considering the rootings at $1$ and $3$, the $8$ obtainable sets are:
-
$\{ 1\} $ by choosing $u = 1$, $v = 1$,
-
$\{ 1, 2, 4, 5\} $ by choosing $u = 1$, $v = 2$,
-
$\{ 1, 2, 3, 4, 5\} $ by choosing $u = 1$, $v = 3$,
-
$\{ 2, 3, 4, 5\} $ by choosing $u = 2$, $v = 3$,
-
$\{ 2, 4, 5\} $ by choosing $u = 2$, $v = 2$,
-
$\{ 3\} $ by choosing $u = 3$, $v = 3$,
-
$\{ 4, 5\} $ by choosing $u = 2$, $v = 4$,
-
and $\{ 5\} $ by choosing $u = 5$, $v = 5$.
If the rootings are instead at $4$ and $5$, there are only $6$ obtainable sets:
-
$\{ 1\} $ by choosing $u = 1$, $v = 1$,
-
$\{ 1, 2, 3\} $ by choosing $u = 2$, $v = 4$,
-
$\{ 1, 2, 3, 4\} $ by choosing $u = 4$, $v = 4$,
-
$\{ 1, 2, 3, 4, 5\} $ by choosing $u = 4$, $v = 5$,
-
$\{ 3\} $ by choosing $u = 3$, $v = 2$,
-
and $\{ 5\} $ by choosing $u = 5$, $v = 5$.
For some of these, there are other ways to choose $u$ and $v$ to arrive at the same set.
Sample Input 1 | Sample Output 1 |
---|---|
5 2 1 2 2 3 2 4 4 5 1 3 4 5 |
8 6 |