题解 CF855G【Harry Vs Voldemort】

树上不满足条件的情况只有\(w\)不在路径\(u-v\)上。
经过推导,在同一个边双连通分量的点可以看作等价类,
交换其顺序并不影响是否满足题目的条件。
这启发我们缩边双连通分量,
并将其看做点,
此时判断不满足条件时,
只需要用在树上的方法。
对于动态加边,
由于边双连通分量是\(Dfs\)生成树上的一个连通块,
我们直接将一开始树上的边作为生成树上的边,
并且使用并查集维护每个点属于的边双连通分量。
对于加边操作没有涉及到的边双连通分量,
其中点作为\(w\)的贡献并不会发生变化。
所以对于计算答案,
只需要考虑每个点作为\(w\)时的贡献,
此时只需要限定\(u,v\)\(w\)要经过同一边,
也就是维护原树子树大小即可。
代码请自己打!

posted @ 2021-02-22 15:00  Bushuai_Tang  阅读(59)  评论(0编辑  收藏  举报