#GESP202503C82. 割裂

    ID: 2835 Type: Default 1000ms 512MiB Tried: 1 Accepted: 1 Difficulty: 4 Uploaded By: Tags>树上差分重链剖分GESP8级

割裂

题目描述

小杨有一棵包含 n n 个节点的树,其中节点的编号从 1 1 到 n n 。

小杨设置了 a a 个好点对 $\{\langle u_1, v_1 \rangle, \langle u_2, v_2 \rangle, \dots, \langle u_a, v_a \rangle\}$ 和一个坏点对 ⟨bu,bv⟩\langle b_u, b_v \rangle。一个节点能被删除,当且仅当:

  • 删除该节点后对于所有的 1≤i≤a 1 \leq i \leq a ,好点对 ui u_i 和 vi v_i 仍然连通;
  • 删除该节点后坏点对 bu b_u 和 bv b_v 不连通。

如果点对中的任意一个节点被删除,其视为不连通。

小杨想知道,还有多少个节点能被删除。

输入格式

第一行包含两个非负整数 n n , a a ,含义如下题面所示。

接下来 n−1n - 1 行,每行包含两个正整数 xi,yi x_i, y_i ,代表存在一条连接节点 xi x_i 和 yi y_i 的边;

之后 a a 行,每行包含两个正整数 ui,vi u_i, v_i ,代表一个好点对 ⟨ui,vi⟩ \langle u_i, v_i \rangle ;

最后一行包含两个正整数 bu,bv b_u, b_v ,代表坏点对 ⟨bu,bv⟩ \langle b_u, b_v \rangle 。

输出格式

输出一个非负整数,代表删除的节点个数。

样例输入 #1

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

样例输出 #1

2

说明

子任务编号 分值 n n a a
1 2020 =10=10 =0=0
2 ≤100 \leq 100
3 6060 ≤106 \leq 10^6 ≤105 \leq 10^5

对于全部数据,保证有 1≤n≤106 1 \leq n \leq 10^6 , 0≤a≤105 0 \leq a \leq 10^5 , ui≠vi u_i \neq v_i , bu≠bv b_u \neq b_v 。

来源

2025 年 3 月 GESP C++ 等级考试。