[AGC033F] Adding Edges
题意翻译
给你一棵 $N$ 个点的树 $T$ 和一张 $N$ 个点 $M$ 条边的无向图 $G$。每个图的顶点编号为 $1\sim N$ 。$T$ 中 $N - 1$ 条边中的第 $i$ 条连接顶点 $a_i$ 和顶点 $b_i$,$G$ 中 $M$ 条边中的第 $j$ 条连接顶点 $c_j$ 和顶点 $d_j$。
通过重复以下操作向 $G$ 中添加边:
+ 选择三个不同的整数 $a, b, c$ 使得在 $G$ 中存在一条连接顶点 $a, b$ 的边和一条连接顶点 $b, c$ 的边,但不存在连接顶点 $a, c$ 的边。
+ 如果在 $T$ 中存在一条简单路径以某种顺序包含了所有的三个顶点 $a, b, c$ 那么在 $G$ 中添加连接 $a, c$ 的边。
输出操作到无法操作时 $G$ 中边的数量。可以证明这不取决于如何选择操作。
题目描述
[problemUrl]: https://atcoder.jp/contests/agc033/tasks/agc033_f
$ N $ 頂点からなる木 $ T $ と $ N $ 頂点 $ M $ 辺からなる無向グラフ $ G $ が与えられます。 それぞれの各頂点には $ 1 $ から $ N $ の番号が割り振られています。 $ T $ の $ N-1 $ 本の辺のうち、$ i $ 本目の辺は頂点 $ a_i $ と頂点 $ b_i $ を繋いでいます。 $ G $ の $ M $ 本の辺のうち、$ j $ 本目の辺は頂点 $ c_j $ と頂点 $ d_j $ を繋いでいます。
$ G $ に対して以下の操作を繰り返し行うことで、$ G $ に辺を追加することを考えます。
- $ 3 $ つの整数 $ a $,$ b $,$ c $ であって、$ G $ の頂点 $ ab $ 間と $ bc $ 間に辺があり、$ ac $ 間に辺がないようなものを選ぶ。 $ T $ のある単純パス上に頂点 $ a $,$ b $,$ c $ が何らかの順序ですべて含まれるとき、$ G $ の頂点 $ ac $ 間に辺を追加する。
これ以上辺を追加することができなくなったとき、$ G $ の辺の数はいくつになるか求めてください。 この数はどのように操作を行っても変わらないことが示せます。
输入输出格式
输入格式
入力は以下の形式で標準入力から与えられる。
> $ N $ $ M $ $ a_1 $ $ b_1 $ $ : $ $ a_{N-1} $ $ b_{N-1} $ $ c_1 $ $ d_1 $ $ : $ $ c_M $ $ d_M $
输出格式
最終的な $ G $ の辺の数を出力せよ。
输入输出样例
输入样例 #1
5 3
1 2
1 3
3 4
1 5
5 4
2 5
1 5
输出样例 #1
6
输入样例 #2
7 5
1 5
1 4
1 7
1 2
2 6
6 3
2 5
1 3
1 6
4 6
4 7
输出样例 #2
11
输入样例 #3
13 11
6 13
1 2
5 1
8 4
9 7
12 2
10 11
1 9
13 7
13 11
8 10
3 8
4 13
8 12
4 7
2 3
5 11
1 4
2 11
8 10
3 5
6 9
4 10
输出样例 #3
27
说明
### 制約
- $ 2\ ≦\ N\ ≦\ 2000 $
- $ 1\ ≦\ M\ ≦\ 2000 $
- $ 1\ ≦\ a_i,\ b_i\ ≦\ N $
- $ a_i\ \neq\ b_i $
- $ 1\ ≦\ c_j,\ d_j\ ≦\ N $
- $ c_j\ \neq\ d_j $
- $ G $ は多重辺を含まない
- $ T $ は木である
### Sample Explanation 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 $ の間に辺を追加する。