|
||||||||||
纠缠点对Time Limit: 40000/20000 MS (Java/Others) Memory Limit: 999999/999999 K (Java/Others)Total Submission(s): 87 Accepted Submission(s): 29 Problem Description 给定两棵由 $n$ 个顶点构成的无根树 $T_1$ 和 $T_2$。 定义点对 $(u,v)$ 和 $(x,y)$ 相互纠缠,当且仅当,在 $T_1$ 上和 $T_2$ 上,从 $u$ 到 $v$ 和从 $x$ 到 $y$ 的最短路径都有至少一个交点。 现给定 $m$ 对点对 $(x_1, y_1), (x_2, y_2), \ldots, (x_m, y_m)$,计算:有多少对点对相互纠缠。即,存在多少对 $i < j$,使得点对 $(x_i, y_i)$ 和点对 $(x_j,y_j)$ 相互纠缠。 Input 第一行一个整数 $t$ $(1 \leq t \leq 10)$,表示测试数据的组数。 对于每组数据: 第一行两个整数 $n$ $(1 \leq n \leq 10^5)$ 和 $m$ $(1 \leq m \leq 10^5)$。 接下来 $n-1$ 行,每行两个整数 $u$,$v$,表示 $T_1$ 上的一条边。 接下来 $n-1$ 行,每行两个整数 $u$,$v$,表示 $T_2$ 上的一条边。 接下来 $m$ 行,每行两个整数 $x$,$y$,表示给定的一个点对。 Output 对每组数据输出一行一个整数,表示所求答案。 Sample Input
Sample Output
Source | ||||||||||
|