点权公式:
sum(x)+sum(y)-sum(LCA)-sum(father[LCA])
或者sum(x)+sum(y)-2*sum(LCA) 然后把LCA这个点的信息加上即可
sum(x) 表示从根节点到x上所有点统计了一遍
sum(y)表示从根节点到y上所有点统计了一遍
这样的话,从根节点到LCA上每个点都计算了两次,而从LCA到x,LCA到y上的点都计算了一次
那么我们要的结果是从x到y上所有点都计算了一次。所以减去sum(LCA) ,操作之后从根节点到LCA上的点(不包括LCA)计算了两次,所以减去sum(father[LCA])即可

边权公式:
sum(x)+sum(y)-2*sum(LCA)
从根走到x加上从根走到y等于从x走到y加上两倍的从根走到LCA
所以减去二倍LCA即可

本文详细介绍了在计算从节点x到节点y路径上的点权或边权总和时所使用的公式。对于点权,提供了两种计算方式,并解释了每种方式背后的逻辑;对于边权,则提供了一个简洁的计算公式。
762

被折叠的 条评论
为什么被折叠?



