原文:树剖LCA讲解

LCA的类型多种多样,只说我知道的,就有倍增求LCA,tarjin求LCA和树链剖分求LCA,当然,也还有很多其他的方法。 其中最常用,速度最快的莫过于树链剖分的LCA了。 树链剖分,首先字面理解一下,什么是树链剖分。 就是把一棵树剖分为若干条链,然后利用数据结构 树状数组,SBT,Splay,线段树等等 去维护每一 条链,复杂度为O logn 那么,树链剖分的第一步当然是对整棵树进行遍历,预处理 ...

2018-04-15 11:09 0 1431 推荐指数:

查看详情

讲解

分入门讲解 问题导入 当我们做题目的时候,往往会有一些题目是给定一颗,并对这颗做一堆蛇皮怪物般的操作的。 那么,我们要怎么做呢? 这里提供一种思想,就是把拆掉: 以轻重边为基础的拆边,把一颗拆成大大小小的几条链放到类似于常用的线段里面加以操作。 轻重 ...

Fri May 25 06:18:00 CST 2018 15 697
分之轻重链讲解

  首先我们有一颗每个点(或者边)有权值,我们要做的就是询问两个点之间路径上各点(边)权值的最大、最小,权值和(就是线段能干的),然后我们还要支持在线更改任意节点(边)的权值。   我们要做的是轻重链分,首先我们看几个定义   size:和SBT里的一样,size[i]为以该点为根节点 ...

Wed Dec 18 17:40:00 CST 2013 0 3451
讲解及总结(重链分+长链分)

  分是解决树上问题的一种常见数据结构,对于树上路径修改及路径信息查询等问题有着较优的复杂度。分分为两种:重链分和长链分,因为长链分不常见,应用也不广泛,所以通常说的分指的是重链分。在这里讲解并总结一下分的实现、优秀性质及应用。 重链分 先来介绍几个重链分 ...

Fri Sep 07 03:52:00 CST 2018 2 2725
【数据结构】分详细讲解

 “在一棵树上进行路径的修改、求极值、求和”乍一看只要线段就能轻松解决,实际上,仅凭线段是不能搞定它的。我们需要用到一种貌似高级的复杂算法——分。 分是把一棵分割成若干条链,以便于维护信息的一种方法,其中最常用的是重链分(Heavy Path ...

Tue Dec 01 05:01:00 CST 2020 2 298

分 1. 相关概念 重儿子:父亲节点的所有儿子中子树结点数目最多(size最大)的结点; 轻儿子:父亲节点中除了重儿子以外的儿子; 重边:父亲结点和重儿子连成的边; 轻边:父亲节点和轻儿子连成的边; 重链:由多条重边连接而成的路径; 轻链 ...

Mon May 11 18:06:00 CST 2020 1 560
模板

题目描述 有一棵点数为 N 的,以点 1 为根,且点有边权。然后有 M 个操作,分为三种: 操作 1 :把某个节点 x 的点权增加 a 。 操作 2 :把某个节点 x 为根的子树中所有点的点权都增加 a 。 操作 3 :询问某个节点 x 到根的路径中所有点的点权和。 输入格式 第一 ...

Sun Nov 15 14:49:00 CST 2020 9 130
洛谷P4180 [BJWC2010]次小生成(最小生成,LCT,主席,倍增LCA,倍增,分)

洛谷题目传送门 %%%TPLY巨佬和ysner巨佬%%% 他们的题解 思路分析 具体思路都在各位巨佬的题解中。这题做法挺多的,我就不对每个都详细讲了,泛泛而谈吧。 大多数算法都要用kruskal把最小生成弄出来,因为要求次小生成。至于为什么次小一定只在最小的基础上改变了一条边,我也不会严谨 ...

Thu Feb 08 20:05:00 CST 2018 4 683
最大生成——LCA

今天说是要练习LCA结果找了道题看着题解打完了,如此惭愧,Lca还得好好理解啊,感觉在最大生成树上做有点异样,可能还是不是很理解吧,在noip前一定要再把这道题再a一遍,好题啊。 这是2013noipt3的题,难度适中,比以往的简单没让人想不出来思路虽然我第一遍看也没想起来但是题解易懂 ...

Mon Sep 24 01:44:00 CST 2018 0 1605
 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM