AT_agc033_f [AGC033F] Adding Edges
题目描述
给定一棵有 $N$ 个顶点的树 $T$ 和一个有 $N$ 个顶点、$M$ 条边的无向图 $G$。每个顶点编号为 $1$ 到 $N$。树 $T$ 的第 $i$ 条边连接顶点 $a_i$ 和顶点 $b_i$。图 $G$ 的第 $j$ 条边连接顶点 $c_j$ 和顶点 $d_j$。
你可以对 $G$ 重复进行如下操作来添加边:
- 选择三个整数 $a$、$b$、$c$,使得 $G$ 中存在边 $ab$ 和 $bc$,但不存在边 $ac$。如果 $a$、$b$、$c$ 三个顶点在树 $T$ 的某条简单路径上按任意顺序都出现过,则在 $G$ 中添加一条 $ac$ 边。
当无法再添加边时,求 $G$ 中的边数。无论操作顺序如何,最终的边数都是相同的。
输入格式
输入通过标准输入给出,格式如下:
> $N$ $M$ $a_1$ $b_1$ $a_2$ $b_2$ $\cdots$ $a_{N-1}$ $b_{N-1}$ $c_1$ $d_1$ $c_2$ $d_2$ $\cdots$ $c_M$ $d_M$
输出格式
输出最终 $G$ 中的边数。
说明/提示
## 限制条件
- $2 \leq N \leq 2000$
- $1 \leq M \leq 2000$
- $1 \leq a_i, b_i \leq N$
- $a_i \neq b_i$
- $1 \leq c_j, d_j \leq N$
- $c_j \neq d_j$
- $G$ 不含重边
- $T$ 是一棵树
## 样例解释 1
按照如下顺序添加边,可以将边数增加到 $6$:
- 选择 $(a,b,c)=(1,5,4)$,在顶点 $1$ 和顶点 $4$ 之间添加一条边。
- 选择 $(a,b,c)=(1,5,2)$,在顶点 $1$ 和顶点 $2$ 之间添加一条边。
- 选择 $(a,b,c)=(2,1,4)$,在顶点 $2$ 和顶点 $4$ 之间添加一条边。
由 ChatGPT 4.1 翻译