树上的差分

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;
相关推荐
IT猿手32 分钟前
基于PWLCM混沌映射的麋鹿群优化算法(Elk herd optimizer,EHO)的多无人机协同路径规划,MATLAB代码
算法·elk·机器学习·matlab·无人机·聚类·强化学习
m0_675988235 小时前
Leetcode2545:根据第 K 场考试的分数排序
python·算法·leetcode
破-风6 小时前
leetcode---mysql
算法·leetcode·职场和发展
Wils0nEdwards6 小时前
Leetcode 合并两个有序链表
算法·leetcode·链表
eternal__day7 小时前
数据结构十大排序之(冒泡,快排,并归)
java·数据结构·算法
姚先生978 小时前
LeetCode 35. 搜索插入位置 (C++实现)
c++·算法·leetcode
Theodore_10228 小时前
3 需求分析
java·开发语言·算法·java-ee·软件工程·需求分析·需求
阿华的代码王国9 小时前
【算法】栈
数据结构·算法·leetcode·
SpongeG9 小时前
数据结构_平衡二叉树
数据结构·算法
arnold669 小时前
华为OD E卷(100分)31-敏感字段加密
算法·华为od