#agc033f. [agc033_f]Adding Edges

[agc033_f]Adding Edges

题目描述

给定一棵包含NN个顶点的树TT,以及一个包含NN个顶点和MM条边的无向图GG。每个图的顶点编号为11NNTT中的第ii条边连接了顶点aia_ibib_iGG中的第jj条边连接了顶点cjc_jdjd_j

考虑通过反复执行以下操作向GG中添加边:

  • 选择三个整数aabbcc,使得GG中有一条连接顶点aabb的边,一条连接顶点bbcc的边,但是没有一条连接顶点aacc的边。如果在TT中存在一个简单路径,该路径按照某个顺序包含了顶点a,ba, bcc,则在GG中添加一条连接顶点aacc的边。

打印当无法再添加边时GG中边的数量。可以证明,这个数量不依赖于操作中所做的选择。

约束条件

  • 2N20002 \leq N \leq 2000
  • 1M20001 \leq M \leq 2000
  • 1ai,biN1 \leq a_i, b_i \leq N
  • aibia_i \neq b_i
  • 1cj,djN1 \leq c_j, d_j \leq N
  • cjdjc_j \neq d_j
  • GG中不包含多重边。
  • TT是一棵树。

输入

输入以以下格式从标准输入给出:

NN MM a1a_1 b1b_1 :: aN1a_{N-1} bN1b_{N-1} c1c_1 d1d_1 :: cMc_M dMd_M

输出

打印GG中边的最终数量。

示例输入1

5 3
1 2
1 3
3 4
1 5
5 4
2 5
1 5

示例输出1

6

通过以下方式添加边,GG中最多可以有六条边:

  • (a,b,c)=(1,5,4)(a,b,c)=(1,5,4),添加一条连接顶点1144的边。
  • (a,b,c)=(1,5,2)(a,b,c)=(1,5,2),添加一条连接顶点1122的边。
  • (a,b,c)=(2,1,4)(a,b,c)=(2,1,4),添加一条连接顶点2244的边。

示例输入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