树上的差分

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;
相关推荐
Kuo-Teng6 小时前
LeetCode 206: Reverse Linked List
java·算法·leetcode·职场和发展
庸子7 小时前
Kubernetes调度器深度解析:从资源分配到亲和性策略的架构师之路
java·算法·云原生·贪心算法·kubernetes·devops
Sunhen_Qiletian7 小时前
YOLOv2算法详解(上篇):从经典到进化的目标检测之路
算法·yolo·目标检测
QTreeY1237 小时前
detr目标检测+deepsort/strongsort/bytetrack/botsort算法的多目标跟踪实现
人工智能·算法·yolo·目标检测·计算机视觉·目标跟踪
AiXed7 小时前
PC微信协议之nid算法
python·网络协议·算法·微信
谈笑也风生8 小时前
经典算法题之子集(四)
算法
mit6.8248 小时前
划分dp+滑窗+前缀和|deque优化
算法
Zach_yuan9 小时前
算法1111
算法
不穿格子的程序员9 小时前
从零开始刷算法——二分-搜索旋转排序数组
数据结构·算法
做怪小疯子10 小时前
LeetCode 热题 100——哈希——最长连续序列
算法·leetcode·哈希算法