树上差分

一直以来都没学这个东西(保留神秘感

不难的东西!!


简介:

树上差分,不如叫树上前缀和!直白来说就是按照树的深度从浅到深做权值(或其他东西的)前缀和。

通常用到的途径就是类似 \(O(n)\) 预处理 \(O(1)\) 求和的问题。

常用公式:

  • 两点之间距离(树边无边权):\(dep_u+dep_v-dep_{lca(u,v)}\)

[BJOI2018] 求和

  • \(O(1)\) 标记:\(u,v\) 两点之间路径点权加: \(sum[u]++ ,sum[v]++,sum[lca(u,v)]--,sum[fa[lca(u,v)]]--\)

[JLOI2014] 松鼠的新家

[USACO15DEC] Max Flow P

  • \(O(1)\) 标记:\(u,v\) 两点之间路径边权加:\(sum[u]++ ,sum[v]++,sum[lca(u,v)]-=2\)\(u\) 代表终点为 \(u\) 的边)
posted @ 2023-07-10 02:31  Pwtking  阅读(20)  评论(0)    收藏  举报