
LCA
文章平均质量分 76
stormjing7
这个作者很懒,什么都没留下…
展开
-
HDU-2586 How far away ?(Tarjian_LCA)
HDU-258 How far away ?题目给一颗树,及其每条边权值,求多组两点最短路径,分析树上两点最短路径可以先把每个节点到跟节点的权值dis求出,设rt为u,v的LCA。u,v最短路径 : dis[u]+dis[v]−2∗dis[rt]dis[u] + dis[v] - 2 * dis[rt]dis[u]+dis[v]−2∗dis[rt]我用的离线Tarjian算法,所以要先...原创 2019-05-21 20:40:37 · 260 阅读 · 0 评论 -
POJ 1330 Nearest Common Ancestors (LCA模板题)
题目最裸的LCA模板题分析可以做的方式很多离线 Tarjian算法在线 LCA倍增法在线 dfs + ST表算法下面给出①:Tarjian + 邻接表,(POJ不支持万能头文件,和c++11,所以下面代码要修改才能提交)#include <bits/stdc++.h>#pragma GCC diagnostic error "-std=c++11"#defi...原创 2019-05-17 11:04:17 · 235 阅读 · 0 评论 -
51nod-2621 树上距离(tarjian离线求LCA)
51nod-2621 树上距离题目求树上两点最短距离,q次查询分析按有向树存,选出一个根节点。首先预处理节点到根节点的距离 disdisdis,用 tarjian离线求询问两点的LCA。最后套结果 dis(u,v)=dis[u]+dis[v]−2∗dis[LCA]dis(u, v) = dis[u] + dis[v] - 2 * dis[LCA]dis(u,v)=dis[u]+dis[...原创 2019-06-20 22:08:16 · 365 阅读 · 0 评论 -
51nod 2599 最近公共祖先(LCA) (ST表求LCA模板)
51nod 2599 最近公共祖先(LCA)题目裸 LCA,给一颗 n 个节点, n-1 条边的树,m次查询求任意两点LCA。算法介绍求 LCALCALCA 可以用离线 TarjianTarjianTarjian算法,算法复杂度O(n + m)。还有一种离线的算法,预处理O(nlogn),在线查询O(1)。就是用STSTST表求LCA。首先介绍欧拉遍历序,给一颗树,从根节点遍历:欧...原创 2019-06-26 16:25:11 · 719 阅读 · 0 评论 -
POJ - 1986 Distance Queries (Tarjian求LCA)
POJ - 1986 Distance Queries题目给出 n 各点,m条边,q次询问,问两点最短距离。分析数据的特殊性,可以看出是一个树,直接Tarjian求Lca即可。不过要注意存图的时候按双向图存,之后转有根树,dfs 时多判断一下不能重复访问父亲节点。代码#include <cstdio>#include <iostream>#include &...原创 2019-07-12 15:54:59 · 240 阅读 · 0 评论