樹上差分
即在樹上進行差分。
例題 1
P3128 [USACO15DEC] Max Flow P
題意:對樹上一條路徑 + 1,求最大點權值。
做法
設操作 s -> t 路徑,則設差分陣列 \(d\),
操作為
d[s]++,d[t]++,d[lca(s,t)]--,d[fa[lca(s,t)]]--;
操作完後,每個點真實權值為其子樹 \(d\) 的和。
即在樹上進行差分。
P3128 [USACO15DEC] Max Flow P
題意:對樹上一條路徑 + 1,求最大點權值。
設操作 s -> t 路徑,則設差分陣列 \(d\),
操作為
d[s]++,d[t]++,d[lca(s,t)]--,d[fa[lca(s,t)]]--;
操作完後,每個點真實權值為其子樹 \(d\) 的和。