LCA

LCA做法千千万,倍增树剖占一半。LCA,我认为比较好用的是树剖版与倍增版,一般情况写倍增版,如果正好这题用树剖就写树剖版。倍增版其实就是用倍增处理出一个点向上跳几步是哪个点,然后求LCA时就先将深的点跳到浅的点齐平,再一起往上跳,注意不要调到公共祖先,而要跳到他的儿子处。模板
LCA过程中可求链上最大/最小值,因为ST表也是用倍增。()。
这里介绍一下树上差分,它的求和时一个子树内合并到这个子树的根,所以越往下的相当于序列中越靠前的。
它可解决经典问题:一棵树上有若干条指定路径,求每条边有几条路径经过。
将边对应到点上,每条路径求出LCA,再对两条路径(u>lca,v>lca),进行树上差分。
树上差分的边差分是在LCA处减2w,点差分是在LCA和其父亲处分别-w。
两个树合并后的直径一定是从两个树原本的直径中取端点。删边操作

posted @   煦阳gyy  阅读(9)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· winform 绘制太阳,地球,月球 运作规律
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
点击右上角即可分享
微信分享提示