树上的差分

1. 点的差分

求路径 u - v 上的点被经过的次数。

cnt [ x ] 代表点 x 经过的次数。

核心代码:

cpp 复制代码
cnt[n]++;
cnt[v]++;
cnt[lca]--;
cnt[fa[lca]]--;

2. 边的差分

求 u - v 路径上每一条边经过的次数。

cnt [ x ]:代表 x 向上的边经过的次数。

核心代码:

cpp 复制代码
cnt[u]++;
cnt[v]++;
cnt[lca]-=2;
相关推荐
放荡不羁的野指针几秒前
leetcode150题-字符串
数据结构·算法·leetcode
苦藤新鸡3 分钟前
4.移动零
c++·算法·力扣
hetao173383710 分钟前
2026-01-04~06 hetao1733837 的刷题笔记
c++·笔记·算法
橘颂TA14 分钟前
【剑斩OFFER】算法的暴力美学——存在重复元素Ⅱ
算法·leetcode·哈希算法·散列表·结构与算法
Boilermaker199217 分钟前
[算法基础] DFS
算法
bubiyoushang88819 分钟前
MATLAB比较SLM、PTS和Clipping三种算法对OFDM系统PAPR的抑制效果
数据结构·算法·matlab
cg501726 分钟前
力扣数据库——组合两个表
sql·算法·leetcode
六边形战士DONK27 分钟前
[强化学习杂记] 从数学角度理解贝尔曼最优公式为什么是greedy?
算法
C雨后彩虹34 分钟前
计算误码率
java·数据结构·算法·华为·面试
罗湖老棍子1 小时前
【例4-6】香甜的黄油(信息学奥赛一本通- P1345)
算法·图论·dijkstra·floyd·最短路算法·bellman ford