LCA
LCA
Stockholm_Sun
这个作者很懒,什么都没留下…
展开
-
最近公共祖先(LCA)及其倍增算法实现
最近公共祖先(LCA)今天看看最近公共祖先(LCA),也就是所谓的最小公共祖先。 我们首先了解一下什么是LCA,我们通过几棵树来理解一下吧。 如图所示,这棵树是以1为根节点的一棵树,我们举一个例子,3和5的LCA就是2,4和5的LCA就是1,3和2的LCA就是2本身。是不是有点明白? 接下来,我们不改变节点间的关系,只改变根节点。 如图所示,我们把2作为根节点,那么这棵二叉树俨然就变原创 2017-07-21 15:27:16 · 4547 阅读 · 10 评论 -
树状网络攻击(LCA和树上差分的应用)
树状网络攻击: 题目描述 SX 公司很发愁,因为 DX 公司想要攻击 SX 公司的网络,SX 公司的网络可以看作一个树, 有 n 个节点和 n-1 条连接这些节点的边使得节点两两连通,节点标号 1-n。树状网络很脆弱, 为了抵御攻击,SX 公司又修建了 m 条边。所有边都是双向的。 你作为 DX 的攻击者,可以恰好毁坏两条边:一条在原树状网络上,一条在新修建的边中。 请计算你有多少种方式原创 2017-08-23 17:32:08 · 582 阅读 · 0 评论 -
[USACO15DEC]最大流Max Flow
Luogu P3128 [USACO15DEC]最大流Max Flow 题目概述: 给定一棵有N个节点的树,接下来有K个操作Order(U,V),使得U和V间的道路上的所有节点(包括U和V)权值都加1,求操作后树上节点权值的最大值。 数据规模: 2≤N≤50,000,1≤K≤100,000) 思路: LCA+前缀和,先DFS遍历树,再用倍增实现LCA,对于每次操作Order(U,V),将原创 2017-08-16 08:32:12 · 651 阅读 · 0 评论 -
LCA Tarjan实现
Tarjan LCA以前认为Tarjan算法只是用来解强连通分量的算法,后来发现LCA也有一个Tarjan算法。 下面借一个树来了解一下算法思路。(树已经横向放置) 询问组: 11 9 10 8 6 7 1 5 2 3 这个算法最好亲手模拟一遍,然后就会感到茅塞顿开。 先从1节点开始DFS深度优先遍历(左节点优先)。 1->2->4->8->10。 发现10没有子节点,找所原创 2017-08-15 17:29:38 · 402 阅读 · 4 评论