
图论 - LCA及其应用
文章平均质量分 94
图论 -
繁凡さん
只想当个小透明,就图一乐^q^,希望可以做出一些微小的贡献(目前研究方向:自然语言处理、深度学习中的对抗攻击、元学习,欢迎大佬们来与我交流^0^)
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
BZOJ 2144 跳跳棋(神仙建模题,倍增 LCA,二分)【BZOJ修复工程】
【BZOJ修复计划 #13】BZOJ 2144 跳跳棋 【国家集训队2011】原创 2021-09-14 21:39:53 · 816 阅读 · 0 评论 -
解题报告:AcWing 352. 闇の連鎖(树上差分、方案统计)
https://www.acwing.com/problem/content/354/在没有附加边的情况下,我们发现这是一颗树,那么再添加条附加边(x,y)后,会造成(x,y)之间产生一个环如果我们第一步截断了(x,y)之间的一条路,那么我们第二次只能截掉(x,y)之间的附加边,才能使其不连通;我们将每条附加边(x,y)称为将(x,y)之间的路径覆盖了一遍;因此我们只需要统计出每条主要边被覆盖了几次即可;对于只被覆盖一次的边,第二次我们只能切断(x,y)边,方法唯一;如果我们第一步切断了被覆盖原创 2020-07-23 23:55:13 · 292 阅读 · 0 评论 -
模板 - LCA最近公共祖先(倍增法、Tarjan、树上差分、LCA优化的次小生成树)
注意LCA可以是自己一、LCA的在线倍增算法/*给定一棵包含 n个节点的有根无向树,有 m个询问,每个询问给出了一对节点的编号 x和 y,询问 x与 y的祖孙关系。注意要先算t,这里使用bfs防止爆栈,使用手写循环队列效率更高*/const int N = 50007, M = 500007 ,INF = 0x3f3f3f3f;int t;int n, m;int ver[M], nex[M], edge[M], head[N],tot;int deep[N];bool vis.原创 2020-07-23 18:05:21 · 802 阅读 · 0 评论 -
解题报告:luogu P4180 [BJWC2010]严格次小生成树(次小生成树、倍增LCA优化、O(mlogn) )
P4180 [BJWC2010]严格次小生成树次小生成树有两种,一种是不严格次小生成树,也就是可以数值上等于最小生成树,一种是严格次小生成树,是权值严格大于最小生成树,两种求法大同小异。方法2在严格次小生成树和不严格次小生成树都成立,而方法1只在严格次小生成树中成立对于任意一颗最小生成树,都存在一个次小生成树(严格或者不严格都成立),与最小生成树只差1条边。根据存在次小生成树与最小生成树只差一条边。我们可以先通过kruskal求出最小生成树 O(mlogm)通过这个树初始化某点到其他点的原创 2020-07-23 17:49:20 · 336 阅读 · 0 评论 -
【割边缩点】解题报告:POJ - 3694 - Network(Tarjan割边缩点 + LCA + 并查集优化)
给定一张N个点M条边的无向连通图,然后执行Q次操作,每次向图中添加一条边,并且询问当前无向图中“桥”的数量。N≤105,M≤2∗105,Q≤1000N≤10^5,M≤2*10^5,Q≤1000N≤105,M≤2∗105,Q≤1000。首先运行一次tarjan,求出桥和缩点,那么无向图缩点为一棵树,树边正好是原来的桥。每次操作连接两点,看看这两点是不是在同一个缩点内,如果是,那么缩点后的树没任何变化,如果两点属于不同的缩点,那么连接起来,然后找这两个缩点的LCA,,因为从点u到LCA再到点v再到点u,将形成原创 2020-06-16 19:52:27 · 315 阅读 · 0 评论 -
0x63.图论 - 树的直径与最近公共祖先
树的直径于LCA最近公共祖先原创 2020-06-07 12:23:26 · 741 阅读 · 0 评论