树上的差分

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;
相关推荐
zxsz_com_cn17 小时前
设备预测性维护算法分类及优劣势分析,选型指南来了
算法·分类·数据挖掘
m0_7487080517 小时前
C++中的观察者模式实战
开发语言·c++·算法
然哥依旧17 小时前
【轴承故障诊断】基于融合鱼鹰和柯西变异的麻雀优化算法OCSSA-VMD-CNN-BILSTM轴承诊断研究【西储大学数据】(Matlab代码实现)
算法·支持向量机·matlab·cnn
qq_5375626717 小时前
跨语言调用C++接口
开发语言·c++·算法
Tingjct17 小时前
【初阶数据结构-二叉树】
c语言·开发语言·数据结构·算法
C雨后彩虹17 小时前
计算疫情扩散时间
java·数据结构·算法·华为·面试
yyy(十一月限定版)18 小时前
寒假集训4——二分排序
算法
星火开发设计18 小时前
类型别名 typedef:让复杂类型更简洁
开发语言·c++·学习·算法·函数·知识
醉颜凉18 小时前
【LeetCode】打家劫舍III
c语言·算法·leetcode·树 深度优先搜索·动态规划 二叉树
达文汐19 小时前
【困难】力扣算法题解析LeetCode332:重新安排行程
java·数据结构·经验分享·算法·leetcode·力扣