G825032. [GESP202503 八级 C++] 27. 割裂

提交2 通过1
通过率50%
时间限制3000ms
内存限制512MiB

题目描述

题目描述

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

小杨设置了 aa 个好点对 $\{\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≤a1 \leq i \leq a,好点对 uiu_i 和 viv_i 仍然连通;
  • 删除该节点后坏点对 bub_u 和 bvb_v 不连通。

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

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

输入格式

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

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

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

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

输出格式

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

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

数据范围

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

对于全部数据,保证有 1≤n≤1061 \leq n \leq 10^6, 0≤a≤1050 \leq a \leq 10^5, ui≠viu_i \neq v_i, bu≠bvb_u \neq b_v。