![](https://img-blog.csdnimg.cn/20201014180756913.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
学习记录
文章平均质量分 76
哔哔哔__b
这个作者很懒,什么都没留下…
展开
-
【学习笔记】Tarjan算法
算法简介 强连通:有向图 G 中任意两个结点连通。 强连通分量(SCC):极大的强连通子图。 Tarjan算法的原理是利用DFS生成树求强连通分量。 其中为图中每个节点uuu维护了以下变量: 变量 解释 dfn[u] 节点uuu在深度优先搜索中的次序,简称dfs序 low[u] 以节点uuu为根的子树中,通过一条不在搜索树上的边到达的节点dfn的最小值 求强连通分量的节点时,可以使用栈进行记录dfs遍历的每个节点,当dfn[u]=low[u]dfn[u]=low[u]dfn[u]=l原创 2021-06-29 15:20:58 · 130 阅读 · 0 评论 -
【学习笔记】树链剖分(重链剖分)
目录重链剖分概念预处理①DFS1()②DFS2()修改查询操作①对于任意两节点间的路径上所有节点修改 *O(logn)^2*查询 *O(logn)^2*②对于以任意节点为根的子树修改 *O(logn)*查询 *O(logn)*数据结构完整代码(无注释) 重链剖分 概念 树链剖分可将树划分成若干条不相交的链的形式,每条链都是自底向上的。 重链剖分能保证划分出的每条重链与轻链上的节点 DFS 序连续,并以此作为节点的序号,每颗子树中的所有节点序号在[a,a+size]范围内(子树根节点序号为a,子树大小为siz原创 2021-04-30 00:44:58 · 211 阅读 · 0 评论