树上的差分

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;
相关推荐
武昌库里写JAVA27 分钟前
机器学习笔记 - week6 -(十一、机器学习系统的设计)
java·开发语言·算法·spring·log4j
AI知识分享官43 分钟前
大模型增量训练--基于transformer制作一个大模型聊天机器人
人工智能·深度学习·算法·数据挖掘·langchain·机器人·transformer
进击的_鹏1 小时前
数据结构之链表(2),双向链表
数据结构·算法·链表
阿凉07021 小时前
信号处理快速傅里叶变换(FFT)的学习
算法
Katharine_Yuan2 小时前
JVM内存模型
java·jvm·算法
技术无疆2 小时前
【Python】The Algorithms:开源算法的宝库
java·c语言·开发语言·c++·python·算法·开源
zhui-meng62 小时前
SigmaStudio中部分滤波器算法有效性频谱分析
算法
2401_858120532 小时前
MATLAB中的模型预测控制(MPC)实现详解
开发语言·算法·matlab
高野4402 小时前
【递归】7. leetcode 404 左叶子之和
算法·leetcode