树上差分
点差分
将两点\(u,v\)之间路径上的所有点权增加\(x,o=LCA(u,v),o\)的父亲节点为\(p\),则操作如下:
a[u]+=x,a[v]+=x,a[o]-=x,a[p]-=x;
边差分
将两点\(u,v\)之间路径上的所有边权增加\(x,o=LCA(u,v)\),以每条边两端深度较大的节点当作该边的差分数组,则操作如下:
a[u]+=x,a[v]+=x,a[o]-=2*x;
统计以\(u\)为根的子树点权和,即为\(u\)点\((u\)点对应的边\()\)的权值

浙公网安备 33010602011771号