树上的差分

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;
相关推荐
YuanDaima204810 分钟前
队列与单调队列基础原理与题目说明
人工智能·python·算法·leetcode·队列·手撕代码
董董灿是个攻城狮13 分钟前
放风的 Claude 你怕不怕
算法
阿杰学AI18 分钟前
AI核心知识122—大语言模型之 直接偏好优化(简洁且通俗易懂版)
人工智能·算法·机器学习·ai·强化学习·dpo·直接优化偏好
kyle~21 分钟前
BFS(广度优先搜索)与 DFS (深度优先搜索)
c++·算法·深度优先·宽度优先
Hello.Reader27 分钟前
算法是什么
linux·运维·算法
炽烈小老头27 分钟前
【每天学习一点算法 2026/04/15】两整数之和(附带位运算总结)
学习·算法
Tisfy34 分钟前
LeetCode 2515.到目标字符串的最短距离:从中间往两边遍历
算法·leetcode·字符串·题解·数组·遍历
Xpower 1739 分钟前
PHM算法学习 Day 3:深度卷积神经网络(CNN)故障诊断变体
学习·算法·cnn
苯酸氨酰糖化物44 分钟前
基于深度学习(U-Net架构下改良GAN与ViT算法)的高效肺部多模态疾病预测模型
人工智能·深度学习·算法·生成对抗网络·视觉检测
feng_you_ying_li1 小时前
异常,try catch ,throw的介绍与运用
算法