E-COM-NET
首页
在线工具
Layui镜像站
SUI文档
联系我们
推荐频道
Java
PHP
C++
C
C#
Python
Ruby
go语言
Scala
Servlet
Vue
MySQL
NoSQL
Redis
CSS
Oracle
SQL Server
DB2
HBase
Http
HTML5
Spring
Ajax
Jquery
JavaScript
Json
XML
NodeJs
mybatis
Hibernate
算法
设计模式
shell
数据结构
大数据
JS
消息中间件
正则表达式
Tomcat
SQL
Nginx
Shiro
Maven
Linux
.....最近公共祖先
POJ-1330-只询问一次的LCA
求两个点的
最近公共祖先
直接反向建图,2个dfs完事。。当然如果是多个询问得用rmq/tarjan了。。水只。。。
viphong
·
2015-11-27 17:00
HDU 2586 How far away ?(LCA)
该题是一道比较基础的LCA(
最近公共祖先
),也就是快速求出树上任意两个点的
最近公共祖先
,然后顺便维护边权值(每个结点到root的距离),就可以快速求出任意两个结点的距离了。
weizhuwyzc000
·
2015-11-17 22:00
数据结构
HDU
LCA
ACM-ICPC
hiho刷题日记——第十五
最近公共祖先
·二
题目与
最近公共祖先
·一将设置关系数量和查询关系数量的数量级都从100提升到100000。思路用邻接表,将家族关系建树,查询情况建图。使用离线算法的方式,通过一次深度优先遍历家族树,得出所有查询的答案。
昂村饭
·
2015-11-17 01:35
hihocoder
最近公共祖先
的思路
起床之后,想了想这个问题,如果没有告诉边和边的关系,没法记录子节点和父节点的数组,就像poj1330。想到了一个用两次dfs的想法,等会去leetcode去实现一下。思路:思路:先对其中一个点进行dfs,找到节点之后回溯把祖先标记为true,然后对另一个节点dfs,一个指针数组记录遇到的true的节点,回溯true节点的时候要指针数组倒退一位,最后找到第二个节点的时候,指针数组最后一个元素即为最近
fuyan159357
·
2015-11-15 10:00
搜索
DFS
poj 1330
最近公共祖先
=================== // //>File:poj1330.cpp //>Author:flowertree //>Time:2015年11月14日 //>Algorithm:LCA
最近公共祖先
问题巧妙解法
fuyan159357
·
2015-11-14 22:00
poj
hiho刷题日记——第十三天
最近公共祖先
·一
查找两个人的
最近公共祖先
。输入每个测试点(输入文件)有且仅有一组测试数据。每组测试数据的第1行为一个整数N,意义如前文所述。
昂村饭
·
2015-11-14 16:21
hihocoder
Unkown2
nbsp; 随机化,概率,简单的几何计算,杂七杂八的数论,组合数学中的差分,康托展开,高斯消元,线性规划 树:
最近公共祖先
·
2015-11-13 22:07
POJ1330Nearest Common Ancestors
最近公共祖先
LCA问题
用的离线算法Tarjan 该算法的详细解释请戳 http://www.cnblogs.com/Findxiaoxun/p/3428516.html 做这个题的时候,直接把1470的代码copy过来,改了改输入输出。这个的难度比那个低。 #include<cstdio> #include<algorithm> #include<cstring> #
·
2015-11-13 16:12
REST
POJ1470Closest Common Ancestors
最近公共祖先
LCA 的 离线算法 Tarjan
该算法的详细解释请戳: http://www.cnblogs.com/Findxiaoxun/p/3428516.html #include<cstdio> #include<algorithm> #include<cstring> #include<vector> using namespace std; const
·
2015-11-13 16:11
close
LCA(
最近公共祖先
)离线算法Tarjan+并查集
LCA问题:给出一棵有根树T,对于任意两个结点u,v求出LCA(T, u, v),即离根最 远的结点x,使得x同时是u和v的祖先。 把LCA问题看成询问式的:给出一系列询问,程序应当对每一个询问尽快做出反应。 对于这类问题有两种解决方法;一是用比较长的时间做预处理,但是等信息充足以后每次 回答询问只需要用比较少的时间。这样
·
2015-11-13 16:10
tar
POJ1986 DistanceQueries
最近公共祖先
LCA 离线算法Tarjan
这道题与之前那两道模板题不同的是,路径有了权值,而且边是双向的,root已经给出来了,就是1,(这个地方如果还按之前那样来计算入度是会出错的。数据里会出现多个root。。。数据地址可以在poj的discuss板块看到)。两个节点之间的距离,可以这样处理:先处理出每个节点i到根的距离dist[i],则节点a,b之间的距离就是dist[a]+dist[b]-2*dist[LCA(a,b)],或者是在L
·
2015-11-13 16:14
tar
1329. Galactic History
space=1&num=1329
最近公共祖先
代码: #include<iostream> #include<stdio.h> #include<string.h
·
2015-11-13 12:03
history
Hdu 4547 【
最近公共祖先
】.cpp
思路: 求出a和b的
最近公共祖先
,然后分4种情况讨论 ①. a和b有一个公共祖先c,则
·
2015-11-13 12:12
HDU
LCA
最近公共祖先
tarjan离线 总结 结合3个例题
在网上找了一些对tarjan算法解释较好的文章 并加入了自己的理解 LCA(Least Common Ancestor),顾名思义,是指在一棵树中,距离两个点最近的两者的公共节点。也就是说,在两个点通往根的道路上,肯定会有公共的节点,我们就是要求找到公共的节点中,深度尽量深的点。还可以表示成另一种说法,就是如果把树看成是一个图,这找到这两个点中的最短距离。 &nbs
·
2015-11-13 12:34
tar
1699. Turning Turtles
space=1&num=1699 从一个点到另一个点正好有一条路 所以原图是一棵树 先求出每一对点的
最近公共祖先
lca 然后一遍dfs 求出每个点到它的lca的转弯数 最后还要判定两个点在
·
2015-11-13 12:46
in
美团算法工程师一面
写出二叉树的数据结构,假设每个节点有指向其父节点的指针, 求出两个二叉树节点的
最近公共祖先
。 2.
·
2015-11-13 11:34
算法
最近公共祖先
(lca)
囧啊囧。 lca的求法太多了 倍增,tarjan,st,lct,hld.... 后边三个我就不写了,其中st我没写过,估计用不上,在线用倍增,离线用tarjan就行了。 嗯。 第一种,倍增(O(nlogn)~O(logn),在线): 倍增的思想用在树上,即可以求出lca。 我们维护二维数组,f[i][j],表示i号点的第2^j号祖先,显然2^0=1也就是f[i][0]就是他的父亲 我
·
2015-11-13 10:36
ca
HDU2874 LCA
所以先预处理出a,b的
最近公共祖先
,和他们各自的距离。 比如a,b的
最近公共祖先
为father(简易图) aa----father----b  
·
2015-11-13 05:25
HDU
LCA问题
基本概念 LCA:树上的
最近公共祖先
,对于有根树T的两个结点u、v,
最近公共祖先
LCA(T,u,v)表示一个结点x,满足x是u、v的祖先且x的深度尽可能大。 RMQ:区间最小值查询问题。
·
2015-11-13 03:11
问题
RMQ & LCA
LCA是给定一棵树,动态询问u和v的
最近公共祖先
。 解决这两种问题都有个很重要的倍增思想(这个思想
·
2015-11-13 03:30
MQ
[POJ1330 Nearest Common Ancestors]
[关键字]:LCA [题目大意]:求出两点间的
最近公共祖先
。
·
2015-11-13 02:49
REST
邻接表+dfs+LCA(
最近公共祖先
问题)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2586 题目大意:有一棵n个节点n-1条边的树。然后给你两个点u,v,让你求u到v的距离。 解题思路: m询问次数比较小,算一下时间复杂度。用邻接表+bfs完全可以过。 会的就不写了,这里我用邻接表+dfs+LCA。
·
2015-11-13 02:06
HDU
Lca与Rmq
关于LCA和RMQ问题 一、
最近公共祖先
(Least Common Ancestors) 对于有根树T的两个结点u、v,
最近公共祖先
LCA(T,u,v)表示一个结点x,满足x是u、v的祖先且x的深度尽可能大
·
2015-11-12 22:02
MQ
POJ1330(Nearest Common Ancestors)
求一棵树中2个点的
最近公共祖先
。 我的做法:用并查集求出每个结点的深度,然后递归求
最近公共祖先
。
·
2015-11-12 22:43
REST
最近公共祖先
(least common ancestors algorithm)
lca问题是
最近公共祖先
问题,一般是针对树结构的。现在有两种方法来解决这样的问题 1. On-line algorithm 用比较长的时间做预处理。然后对每次询问进行回答。
·
2015-11-12 19:21
Algorithm
【POJ】1330 Nearest Common Ancestors ——
最近公共祖先
(LCA)
Nearest Common Ancestors Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 18136 Accepted: 9608 Description A rooted tree is a well-known data structure in compu
·
2015-11-12 17:49
REST
用“倍增法”求
最近公共祖先
(LCA)
1.
最近公共祖先
:对于有根树T的两个结点u、v,
最近公共祖先
LCA(T,u,v)表示一个结点x,满足x是u、v的祖先且x的深度尽可能大。
·
2015-11-12 15:48
ca
UESTC 899 方老师和农场 --双连通分量的构造
(简单说明一下,首先把两个
最近公共祖先
最远的两个叶节点之间连接一条边,这样可以把这两个点到祖先的路径上所有点收缩到一起,因为一个形成的环一定是双连通的。
·
2015-11-12 14:07
UE
sicily 2377 Ants Colony 【LCA Tarjan算法】
传说中的
最近公共祖先
问题(LCA),用Tarjan算法可以过,但注意结果超int.
·
2015-11-12 13:04
ant
Tarjan应用:求割点/桥/缩点/强连通分量/双连通分量/LCA(
最近公共祖先
)【修改】
一、基本概念: 1.割点:若删掉某点后,原连通图分裂为多个子图,则称该点为割点。 2.割点集合:在一个无向连通图中,如果有一个顶点集合,删除这个顶点集合,以及这个集合中所有顶点相关联的边以后,原图变成多个连通块,就称这个点集为割点集合。 3.点连通度:最小割点集合中的顶点数。 4.割边(桥):删掉它之后,图必然会分裂为两个或两个以上的子图。 5.割边集合:如果有一个边集合,删除这个边集合
·
2015-11-12 10:09
tar
[POJ 1330]Nearest Common Ancestors[LCA](O(dep[u] + dep[v]))
题目链接:[POJ1330]NearestCommonAncestors[LCA](O(dep[u]+dep[v]))题意分析:求两个结点的
最近公共祖先
。
CatGlory
·
2015-11-12 00:00
LCA
LCA与RMQ
LCA:Least Common Ancestors(
最近公共祖先
),对于一棵有根树T的任意两个节点u,v,求出LCA(T, u,
·
2015-11-11 19:54
MQ
hdu 2460 poj 3694 (双联通+LCA)
在给出的两个点上加一条边,求剩下桥的数量,,不会LCA在线,就用了最普通的,先Tarjan双联通缩点,然后将缩完的图建成一棵树,树的所有边就是桥了,如果在任意两点间加一条边的话,那么从两点到
最近公共祖先
的所有边都不是桥了
·
2015-11-11 18:39
poj
[Wc2006]水管局长数据加强版 LCA&RMQ
通过构建最小生成树,然后转换成 寻找
最近公共祖先
来求解, 逆序处理询问,将删除改成添加边. 代码在BZOJ上WA了.暂时未找到原因, 先放着...
·
2015-11-11 11:56
MQ
[置顶] LCA的树链剖分实现
计算树中两个节点的
最近公共祖先
,我们一般有爬山法,Tarjan离线算法,或者是将LCA转换成RMQ来解,这里讲一讲一种新的求LCA的算法,它是基于树链剖分的。
·
2015-11-11 09:21
实现
【hihoCoder第十七周】
最近公共祖先
·三
之前就写的是离线算法。思路就是先序一遍树,记录层数,然后高效RMQ就好。ST和线段树都能过。 以后有时间将之前的在线算法补上。 #include <bits/stdc++.h> using namespace std; #define MAXN 100005 #define MAXM 105 #define inf 0x7ffffff int n
·
2015-11-11 07:45
code
【hihoCoder第十五周】
最近公共祖先
·二
老实说我没有读题,看见标题直接就写了,毕竟hiho上面都是裸的算法演练。 大概看了下输入输出,套着bin神的模板,做了个正反map映射,但是怎么都得不了满分。等这周结束后,找高人询问下trick。 若是有人找出了错误,或是发现代码中的不足,求指出。感激!~ 以下是个人80分的代码。(之后献上两天之后的100分代码~_~)。 1 #include <
·
2015-11-11 07:44
code
LCA
最近公共祖先
(least common ancestors)
#include"stdio.h" #include"string.h" #include"iostream" #include"queue" #define M 111111 using namespace std; struct st { int u,v,next,w; }edge[M*2]; int
·
2015-11-10 22:10
com
hdu2586(LCA
最近公共祖先
)
How far away ? Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 3653 Accepted Submission(s): 1379
·
2015-11-10 22:09
HDU
最近公共祖先
LCA 【专题@AbandonZHANG】
算法艺术与信息学竞赛》 --- 刘汝佳 博客: http://blog.163.com/kevinlee_2010/blog/static/16982082020120794613496/
最近公共祖先
·
2015-11-08 16:31
ab
最近公共祖先
LCA 【专题@AbandonZHANG】
算法艺术与信息学竞赛》 --- 刘汝佳 博客: http://blog.163.com/kevinlee_2010/blog/static/16982082020120794613496/
最近公共祖先
·
2015-11-08 16:30
ab
最近公共祖先
LCA 【@Abandon】
博客:http://blog.163.com/kevinlee_2010/blog/static/16982082020120794613496/
最近公共祖先
(LCA)问题
最近公共祖先
·
2015-11-08 16:29
ab
POJ 1330 Nearest Common Ancestors 【
最近公共祖先
LCA算法+Tarjan离线算法】
Nearest Common Ancestors Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 20715 Accepted: 10910 Description A rooted tree is a well-known data structure in com
·
2015-11-08 16:34
REST
hihocoder #1062 :
最近公共祖先
·一(小数据量 map+set模拟+标记检查 *【模板】思路 )
#1062 :
最近公共祖先
·一 时间限制: 10000ms 单点时限: 1000ms 内存限制: 256MB 描述 小Ho最近发现了一个神奇的网站!
·
2015-11-08 16:00
code
HDU4547(CD操作)LCA+Tarjan离线算法
/* *题目大意: *题目为天朝文字,不多说; * *算法思想: *题目很明显要求的是一个LCA问题; *即询问从A到B的需要的步数,即首先从A到达A和B的
最近公共祖先
需要的步数
·
2015-11-08 14:32
tar
acdream 1018 Hotel(函数式线段树、
最近公共祖先
)
题目链接:http://www.acdream.net/problem.php?id=1018 题意:给出一棵树,每个节点有一个值w。若干询问,每个询问s,t,a,b,k,询问从s节点走到t节点权值在[a,b]之间的第k个节点。 思路: (1)首先把从根出发到每个点的权值分布用函数式线段树全部记录,则通过函数式线段树的减法操作以及计算两个点LCA就可以得到任意两个点路径上权值a到b的点个数。
·
2015-11-08 11:21
线段树
HDU 4409 Family Name List(LCA)
(3)c name1 name2输出name1和name2 的
最近公共祖先
。 注意(3):如果
最近公共祖先
是name1或者name2,那么要输出
·
2015-11-08 11:17
list
hihoCoder#1069
最近公共祖先
·三
原题地址 根据提示用Spase Table做 将Tree先展成List,因为数组长度等于边数的2倍,树中边数等于节点数-1,所以List数组只要开2倍节点数大小即可 WA了几次,原来是查询的时候出现左边界大于右边界的情况,所以这种情况要颠倒一下 代码: 1 #include <iostream> 2 #include <vecto
·
2015-11-08 10:39
code
hihoCoder#1067
最近公共祖先
·二
原题地址 超时、超内存都碰到了。。最后还是参考了这篇博文才勉强AC 需要注意: 1. 肯定是树而不是森林,而且树的根节点一定是第一个出现的名字,所以不需要再去找哪个是根了。这样可以节省一部分内存。 2. 用并查集路径压缩的方法维护并查集结构即可,当查找的时候再压缩,不需要每次染黑节点的时候都压缩。这样可以节省一部分时间。 3. 字符串都转成id再做。 4. 能静态申请内
·
2015-11-08 10:36
code
hihoCoder#1062
最近公共祖先
·
原题地址 A和A的共同祖先是A,即使A没有在之前的家谱中出现过!被这个坑了,WA了很久。。。 比如:小头爸爸是大头儿子他爹,问:隔壁王叔叔和隔壁王叔叔的最近祖先是谁?,答:隔壁王叔叔。 代码: 1 #include <iostream> 2 #include <map> 3 #include <set> 4
·
2015-11-08 10:35
code
上一页
32
33
34
35
36
37
38
39
下一页
按字母分类:
A
B
C
D
E
F
G
H
I
J
K
L
M
N
O
P
Q
R
S
T
U
V
W
X
Y
Z
其他