#ATagc033f. [AGC033F] Adding Edges

[AGC033F] Adding Edges

题目描述

给定一棵有 NN 个顶点的树 TT 和一个有 NN 个顶点、MM 条边的无向图 GG。每个顶点编号为 11NN。树 TT 的第 ii 条边连接顶点 aia_i 和顶点 bib_i。图 GG 的第 jj 条边连接顶点 cjc_j 和顶点 djd_j

你可以对 GG 重复进行如下操作来添加边:

  • 选择三个整数 aabbcc,使得 GG 中存在边 ababbcbc,但不存在边 acac。如果 aabbcc 三个顶点在树 TT 的某条简单路径上按任意顺序都出现过,则在 GG 中添加一条 acac 边。

当无法再添加边时,求 GG 中的边数。无论操作顺序如何,最终的边数都是相同的。

输入格式

输入通过标准输入给出,格式如下:

NN MM a1a_1 b1b_1 a2a_2 b2b_2 \cdots aN1a_{N-1} bN1b_{N-1} c1c_1 d1d_1 c2c_2 d2d_2 \cdots cMc_M dMd_M

输出格式

输出最终 GG 中的边数。

样例 1

输入

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

输出

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

输出

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

输出

27

说明/提示

限制条件

  • 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 是一棵树

样例解释 1

按照如下顺序添加边,可以将边数增加到 66

  • 选择 (a,b,c)=(1,5,4)(a,b,c)=(1,5,4),在顶点 11 和顶点 44 之间添加一条边。
  • 选择 (a,b,c)=(1,5,2)(a,b,c)=(1,5,2),在顶点 11 和顶点 22 之间添加一条边。
  • 选择 (a,b,c)=(2,1,4)(a,b,c)=(2,1,4),在顶点 22 和顶点 44 之间添加一条边。

由 ChatGPT 4.1 翻译