题目描述
给定一张 n n n 个点 m m m 条边的无向联通图和其中一棵生成树,要求删掉正好两条树边和一些非树边,使得图不连通。求最少删掉几条非树边。
保证以 1 1 1 号点为生成树的根时,非树边的两端的最近公共祖先是 1 1 1 号点。
数据范围
3 ≤ n ≤ 40000 ; m ≤ 100000 ; m ≥ n − 1 3 \le n \le 40000; m \le 100000; m \ge n − 1 3≤n≤40000;m≤100000;m≥n−1
题解
考虑删掉两条边后删掉非树边,那就考虑孤立三块中的一块。
1.删掉不在以
1
1
1 为根的同一子树内的边:那就要么把
u
u
u 或
v
v
v 子树连出去的非树边删掉,要么删掉两个子树外到这两个子树内的边。
2.如果删掉同一子树的边:可以发现
u
,
v
u,v
u,v 构成祖先关系更优。那就是要么是孤立
v
v
v 子树,要么孤立
u
u
u 子树扣掉
v
v
v 子树的部分,要么就是孤立
u
u
u 子树外的连通块。
用 dsu on tree \text{dsu on tree} dsu on tree 维护即可。效率: O ( n l o g 2 n ) O(nlog^2n) O(nlog2n) 。