树上差分
一直以来都没学这个东西(保留神秘感
不难的东西!!
简介:
树上差分,不如叫树上前缀和!直白来说就是按照树的深度从浅到深做权值(或其他东西的)前缀和。
通常用到的途径就是类似 \(O(n)\) 预处理 \(O(1)\) 求和的问题。
常用公式:
- 两点之间距离(树边无边权):\(dep_u+dep_v-dep_{lca(u,v)}\)
- \(O(1)\) 标记:\(u,v\) 两点之间路径点权加: \(sum[u]++ ,sum[v]++,sum[lca(u,v)]--,sum[fa[lca(u,v)]]--\)
- \(O(1)\) 标记:\(u,v\) 两点之间路径边权加:\(sum[u]++ ,sum[v]++,sum[lca(u,v)]-=2\)(\(u\) 代表终点为 \(u\) 的边)

浙公网安备 33010602011771号