学会了点差分 ,边差分就很简单了。
给定一棵树,给出若干次修改操作以及少次查询操作
修改操作:给定两个点 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为根的子树的权值和(前缀和)。