atcoder#AGC033F. [AGC033F] Adding Edges

[AGC033F] Adding Edges

题目描述

N N 頂点からなる木 T T N N 頂点 M M 辺からなる無向グラフ G G が与えられます。 それぞれの各頂点には 1 1 から N N の番号が割り振られています。 T T N1 N-1 本の辺のうち、i i 本目の辺は頂点 ai a_i と頂点 bi b_i を繋いでいます。 G G M M 本の辺のうち、j j 本目の辺は頂点 cj c_j と頂点 dj d_j を繋いでいます。

G G に対して以下の操作を繰り返し行うことで、G G に辺を追加することを考えます。

  • 3 3 つの整数 a a ,b b ,c c であって、G G の頂点 ab ab 間と bc bc 間に辺があり、ac ac 間に辺がないようなものを選ぶ。 T T のある単純パス上に頂点 a a ,b b ,c c が何らかの順序ですべて含まれるとき、G G の頂点 ac ac 間に辺を追加する。

これ以上辺を追加することができなくなったとき、G G の辺の数はいくつになるか求めてください。 この数はどのように操作を行っても変わらないことが示せます。

输入格式

入力は以下の形式で標準入力から与えられる。

N N M M a1 a_1 b1 b_1 : : aN1 a_{N-1} bN1 b_{N-1} c1 c_1 d1 d_1 : : cM c_M dM d_M

输出格式

最終的な G G の辺の数を出力せよ。

题目大意

给你一棵 NN 个点的树 TT 和一张 NN 个点 MM 条边的无向图 GG。每个图的顶点编号为 1N1\sim NTTN1N - 1 条边中的第 ii 条连接顶点 aia_i 和顶点 bib_iGGMM 条边中的第 jj 条连接顶点 cjc_j 和顶点 djd_j
通过重复以下操作向 GG 中添加边:

  • 选择三个不同的整数 a,b,ca, b, c 使得在 GG 中存在一条连接顶点 a,ba, b 的边和一条连接顶点 b,cb, c 的边,但不存在连接顶点 a,ca, c 的边。
  • 如果在 TT 中存在一条简单路径以某种顺序包含了所有的三个顶点 a,b,ca, b, c 那么在 GG 中添加连接 a,ca, c 的边。

输出操作到无法操作时 GG 中边的数量。可以证明这不取决于如何选择操作。

5 3
1 2
1 3
3 4
1 5
5 4
2 5
1 5
6
7 5
1 5
1 4
1 7
1 2
2 6
6 3
2 5
1 3
1 6
4 6
4 7
11
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
27

提示

制約

  • 2  N  2000 2\ ≦\ N\ ≦\ 2000
  • 1  M  2000 1\ ≦\ M\ ≦\ 2000
  • 1  ai, bi  N 1\ ≦\ a_i,\ b_i\ ≦\ N
  • ai  bi a_i\ \neq\ b_i
  • 1  cj, dj  N 1\ ≦\ c_j,\ d_j\ ≦\ N
  • cj  dj c_j\ \neq\ d_j
  • G G は多重辺を含まない
  • T T は木である

Sample Explanation 1

以下の順で辺を追加することで 6 6 本まで辺を増やすことができます。 - (a,b,c)=(1,5,4) (a,b,c)=(1,5,4) とし、頂点 1 1 と頂点 4 4 の間に辺を追加する。 - (a,b,c)=(1,5,2) (a,b,c)=(1,5,2) とし、頂点 1 1 と頂点 2 2 の間に辺を追加する。 - (a,b,c)=(2,1,4) (a,b,c)=(2,1,4) とし、頂点 2 2 と頂点 4 4 の間に辺を追加する。