计算连通块数量有一个经典的公式:
连通块数量=点数−边数在这个问题中,我们要求的是红色连通块的数量,所以公式可以相应地调整为:
小美拿到一棵 n 个结点的 树,初始都是白色,q 次操作。
给定 u,v ,把 u 到 v 的简单路径上的所有点染红。
请你输出树上最后有多少个红色连通块。
【名词解释】 树:指这样的一张图,其由 n 个节点和 n−1 条边构成,其上的任意两个点都连通且不存在环。
简单路径:在图上由若干顶点构成的序列,序列中顶点互不重复,且相邻顶点有边相连;路径长度为其中边的数量。
某一颜色的连通块:也称连通分量,满足,
是原图的一个子图;
连通块内的任意两个顶点之间都存在路径相连,且路径上的点也在连通块内;
连通块内所有顶点的颜色均为目标颜色;
是极大的,即不能再通过添加原图中的其他顶点而依旧保持连通性;
单独的点也构成一个连通块。连通块的大小即为连通块中顶点的数量。
第一行两个整数 n,q(1≤n,q≤2×105) 表示结点总数和操作次数。
接下来 n−1 行,每行两个整数 u,v(1≤u,v≤n,u=v) ,表示结点 u 和 v 之间存在一条无向边,输入保证是一棵树。接下来 q 行,每行给出两个整数u,v(1≤u,υ≤n) ,表示将此简单路径上的所有结点染成红色。
一个整数,最后当前树上存在多少个红色连通块。
输入
5 3
1 2
1 3
1 4
5 3
3 3
4 3
1 5
输出
1