博客园 首页 私信博主 显示目录 隐藏目录 管理 动画

ABC359 G - Sum of Tree Distance

题目链接

题目大意

给出一棵树,树上每个节点都有一种颜色,求所有颜色相同的节点两两之间距离的总和。

 

题解

想来写题解主要是看了一下官方解法都写的需要“重心分解”,应该是对应中文语境下的树的点分治。实际上点分治写起来很费事,可以用启发式合并替代。

具体来说,dfs时每个节点都维护一个数据结构(平衡树线段树都可以)用来统计子树下各个颜色节点的数量,维护时启发式合并即可,缺点是复杂度应该是两个logn的。

为了统计答案,除了维护节点数量还需要一边统计他们的深度之和。

代码链接(用小号打的hhh)

posted @ 2024-06-23 03:12  swm_sxt  阅读(40)  评论(0编辑  收藏  举报