专栏文章

题解:CF2042E Vertex Pairs

CF2042E题解参与者 1已保存评论 0

文章操作

快速查看文章及其快照的属性,并进行相关操作。

当前评论
0 条
当前快照
1 份
快照标识符
@miqtjt0a
此快照首次捕获于
2025/12/04 10:30
3 个月前
此快照最后确认于
2025/12/04 10:30
3 个月前
查看原文
钦定根妙完了。
因为原题给出了一个无根树,如果我们在此基础上考虑不选择一个点,则需要对其的所有子树进行递归,这个做起来是十分复杂的。所以我们考虑钦定一个点为根,表示根这个点一定在我所选的集合内。因为同一种颜色的两个点至少选择一个,所以将两个点分别钦定为根跑一遍即可。
因为删除第 ii 个点的代价为 2i2^i,所以我们考虑贪心,按照编号从大往小进行考虑,贪心的可以不选当前第 ii 个点就不选,显然这一定是最优的。
那么对于一个节点,如果删除了它相当于删除了它的所有子树,那么我们考虑如何判断那些点不能被删除。
  1. 任意一对同色点的 lca\text{lca} 到根路径上的所有点是不能被删除的。
  2. 当一个点被删除,则另一个同色点到根路径上的所有点是不能被删除的。
第一种情况可以提前找到所有同色点 lca\text{lca} 预处理,第二种情况可以直接打标记暴力删除。
因为每个点只会被删除一次,所以复杂度是正确的。
复杂度 O(nlogn)O(n \log n)

评论

0 条评论,欢迎与作者交流。

正在加载评论...