问题 5316 --河图洛书5316: 河图洛书
时间限制: 6 Sec 内存限制: 512 MB
提交: 10 解决: 4
[提交][状态][命题人:]题目描述
古有河图洛书,适合优先搜索。
在一张图上,定义DFS树为从指定节点作为根节点,进行不重复访问的DFS得到的遍历路径构成的树。
现在有一棵包含 n 个节点的树,对其进行 q 次操作,每次操作指定一个点对 (x,y) ,然后:
- 若不存在边 (x,y) ,则添加边 (x,y) 。
- 若存在边 (x,y) ,则删除边 (x,y) 。保证删除的边不是初始树上的边。
假设允许对每个节点的相邻边进行排序。若从一个点出发的DFS树可以和初始树一样,则称其为好点。
求每次操作后的好点个数。
输入
第一行包含两个整数 n,q (3≤n≤2·10^5, 1≤q≤2·10^5) ,表示节点数和操作数。
接下来 n-1 行,每行输入两个整数 u,v (1≤u,v≤n, u≠v) ,表示 u,v 节点间有一条边。
接下来 q 行,每行输入两个整数 x,y (1≤x,y≤n, x≠y) ,表示对 (x,y) 点对操作。
输出
对于每次操作,输出一行,包含一个整数,表示好点个数。
样例1:
2
3
样例2:
3
2
3
2
3
2
提示
在样例 1 中,
第一次操作连接边 (2,3) ,此时好点为节点 2,3 ,输出 2 。
第二次操作删除边 (2,3) ,此时好点为节点 1,2,3 ,输出 3 。
在样例 2 中,每次操作后好点分别为
{2,3,5}
{3,5}
{3,4,5}
{4,5}
{4,5,6}
{5,6}
来源
[提交][状态]