学会了点差分 ,边差分就很简单了。
给定一棵树,给出若干次修改操作以及少次查询操作
修改操作:给定两个点 u , v u,v u,v,将 u , v u,v u,v路径上所有的边权值 + k +k +k
查询操作:询问点 x x x到其父亲结点的边权值
思路:树上边差分,要修改 u , v u,v u,v路径上的所有边权值,只需
f
[
u
]
+
=
k
f[u]+=k
f[u]+=k
f
[
v
]
+
=
k
f[v]+=k
f[v]+=k
f
[
l
c
a
(
u
,
v
)
]
−
=
2
∗
k
f[lca(u,v)]-=2*k
f[lca(u,v)]−=2∗k
点 x x x到其父亲结点的边权值就是以 x x x为根的子树的权值和(前缀和)。
这篇博客介绍了树上差分的概念,通过一个实例展示了如何使用边差分处理树结构中节点路径上的权值修改问题。操作包括增权路径和查询特定节点到父节点的边权值。树上差分通过更新路径上的节点来实现快速查询,提高了效率。
1016

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



