题面描述
小杨有一棵包含 n 个节点的树,其中节点的编号从 1 到 n。
小杨设置了 a 个好点对{<u1,v1>,<u2,v2>,...,<ua,va>}和 1 个坏点对 <bu,bv>。一个节点能够被删除,当
且仅当:
删除该节点后对于所有的 i(1≤i≤a),好点对 ui 和 vi 仍然连通;
删除该节点后坏点对 bu 和 bv 不连通。
如果点对中的任意一个节点被删除,其视为不连通。
小杨想知道,有多少个节点能够被删除。
输入格式
第一行包含两个正整数 n,a,含义如题面所示。
之后 n−1 行,每行包含两个正整数 xi,yi,代表存在一条连接节点 xi 和 yi 的边。
之后 a 行,每行包含两个正整数 ui,vi,代表一个好点对 <ui,vi>。
最后一行包含两个正整数 bu,bv,代表坏点对 <bu,bv>。
输出格式
输出一个正整数,代表能够删除的节点个数。
输入样例
16 221 331 543 653 265 475 485 392 6
输出样例
12
数据范围
| 子任务编号 |
分值 |
n |
a |
| 1 |
20% |
10 |
0 |
| 2 |
20% |
≤100 |
≤100 |
| 3 |
60% |
≤106 |
≤105 |
对于全部数据,保证有 1≤n≤106,0≤a≤105,ui=vi,bu=bv。