树上的差分

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;
相关推荐
未来之窗软件服务3 分钟前
幽冥大陆(一百12)js打造json硬件管道——东方仙盟筑基期
开发语言·javascript·算法·json·仙盟创梦ide·东方仙盟·东方仙盟算法
放下华子我只抽RuiKe533 分钟前
AI大模型开发-实战精讲:从零构建 RFM 会员价值模型(进阶挑战版)
人工智能·深度学习·算法·机器学习·数据挖掘·数据分析·聚类
Nontee34 分钟前
Leetcode Top100答案和解释 -- Python版本(链表)
算法·leetcode·链表
niuniudengdeng2 小时前
六面独立转动魔方还原机器人设计与实现
数学·算法·机器人
ghie90902 小时前
基于MATLAB的A*算法避障路径规划实现
人工智能·算法·matlab
雾岛听蓝2 小时前
C文件操作与系统IO
linux·c语言·开发语言·经验分享·笔记·算法
zh路西法2 小时前
【宇树机器人强化学习】(一):PPO算法的python实现与解析
python·深度学习·算法·机器学习·机器人
随意起个昵称2 小时前
【贪心】选择尽量多的不相交区间
数据结构·算法
章小幽2 小时前
LeetCode-35.搜索插入位置
数据结构·算法·leetcode