首页 > 其他分享 >CF2042 E

CF2042 E

时间:2024-12-03 21:21:22浏览次数:2  
标签:连通 这个 题意 加入 祖先 CF2042

题意:有一个 \(2n\) 个点的树,权值在 \(1\) 到 \(n\) 之间且每个数均出现两次,一个点 \(i\) 的价值为 \(2^i\),求价值和最小的 \(1\) 到 \(n\) 均出现过的连通块。

首先先二分出连通块中编号最大的点的最小值,再以这个点为根,接着再倒着考虑这个点是否要加入连通块。

对于根在的连通块,若枚举到 \(i\) 不加入连通块,那其子树中的点都不会在存在于连通块中,暴力修改即可,所以瓶颈在于判断是否可以不加入,而这个是简单的,若权值 \(x\) 在连通块中仍有两个,那么就不能删所以它们的公共祖先,若只有一个,那就不能删它和它的祖先,然后这个用一个树状数组维护下子树和就行了。

标签:连通,这个,题意,加入,祖先,CF2042
From: https://www.cnblogs.com/Cyan0826/p/18585083

相关文章