[ABC133F] Colorful Tree
给你一颗树,每条边有颜色、边权,你需要处理一些询问,每个询问给出 \(x,y,u,v\) 您需要求出假定所有颜色为 \(x\) 的边边权全部变成 \(y\) 后,\(u\) 和 \(v\) 之间的距离。询问之间互相独立。
先拆贡献变成询问一个点到根的距离。
考虑把颜色为 \(x\) 的边边权改为 \(y\) 后距离会怎样变化
\( d'=d-s_x+yc_x \)
其中 \(s_x\) 表示颜色为 \(x\) 的边贡献的长度和,\(c_x\) 表示颜色为 \(x\) 的边的个数。
那么我们此时用持久化数组维护 \(s\), \(c\) 这题就已经做完了。
但是如果把询问离线下来就可以 \(O(n+q)\) 地处理询问,瓶颈在于求 LCA 是 \(O(n\log n)\) 的。
本文来自博客园,作者:CuteNess,转载请注明原文链接:https://www.cnblogs.com/CuteNess/p/18718741

浙公网安备 33010602011771号