码迷,mamicode.com
首页 >  
搜索关键字:最近公共祖先    ( 546个结果
树的问题小结(最小生成树、次小生成树、最小树形图、LCA、最小支配集、最小点覆盖、最大独立集)
树的定义:连通无回路的无向图是一棵树。有关树的问题:1、最小生成树。2、次小生成树。3、有向图的最小树形图。4、LCA(树上两点的最近公共祖先)。5、树的最小支配集、最小点覆盖、最大独立集。一、最小生成树解决的问题是:求无向图中边权值之和最小的生成树。算法有Kruskal和Prim。Kruskal使...
分类:其他好文   时间:2014-09-27 20:08:50    阅读次数:285
LCA算法的理解
LCA思想:在求解最近公共祖先为问题上,用到的是Tarjan的思想,从根结点开始形成一棵深搜树,非常好的处理技巧就是在回溯到结点u的时候,u的子树已经遍历,这时候才把u结点放入合并集合中,这样u结点和所有u的子树中的结点的最近公共祖先就是u了,u和还未遍历的所有u的兄弟结点及子树中的最近公共祖先就是...
分类:其他好文   时间:2014-08-29 23:56:28    阅读次数:691
连通分量模板:tarjan: 求割点 && 桥 && 缩点 && 强连通分量 && 双连通分量 && LCA(最近公共祖先)
1.割点:若删掉某点后,原连通图分裂为多个子图,则称该点为割点。 2.割点集合:在一个无向连通图中,如果有一个顶点集合,删除这个顶点集合,以及这个集合中所有顶点相关联的边以后,原图变成多个连通块,就称这个点集为割点集合。 3.点连通度:最小割点集合中的顶点数。 4.割边(桥):删掉它之后,图必然会分裂为两个或两个以上的子图。 5.割边集合:如果有一个边集合,删除这个边集合以后,...
分类:其他好文   时间:2014-08-26 21:30:06    阅读次数:612
POJ 1330 (LCA)
http://poj.org/problem?id=1330题意:给出一个图,求两个点的最近公共祖先。sl :水题,贴个模板试试代码。本来是再敲HDU4757的中间发现要用LCA, 操蛋只好用这个题目试试自己写的对不对。 下面是个倍增的写法,挺实用的。好了,继续。。。1#include2#inclu...
分类:其他好文   时间:2014-08-23 17:33:41    阅读次数:233
最近公共祖先(lca)
囧啊囧。lca的求法太多了倍增,tarjan,st,lct,hld....后边三个我就不写了,其中st我没写过,估计用不上,在线用倍增,离线用tarjan就行了。嗯。第一种,倍增(nlogn,在线):倍增的思想用在树上,即可以求出lca。我们维护二维数组,f[i][j],表示i号点的第2^j号祖先,...
分类:其他好文   时间:2014-08-21 22:42:24    阅读次数:278
UVa 11354 Bond 最小生成树+LCA倍增
题目来源:UVa 11354 Bond 题意:n个点m条边的图 q次询问 找到一条从s到t的一条边 使所有边的最大危险系数最小 思路:使最大的危险系数尽量小 答案是最小生成树上的边 然后用LCA倍增法记录s和t到他们最近公共祖先的最大值 #include #include #include using namespace std; const int maxn = 50010; con...
分类:其他好文   时间:2014-08-21 21:15:54    阅读次数:171
最近公共祖先
参考文献1 参考文献2 题目:输入二叉树中的两个结点,输出这两个结点在数中最低的共同父结点 变种一:二叉树是二分查找树,如果根节点比两个节点都小,则访问右子树,都大则访问左子树,否则即为结果 变种二:每个节点有指向父节点的指针,则转变为查找两个单链表的第一个公共节点 变种三:对于普通二叉树,下面给出两种方法 方法一:二叉树的后序遍历,先看节点是否在左子树,再看右子树,然后根据左右子...
分类:其他好文   时间:2014-08-21 17:22:34    阅读次数:197
CodeForces 29D Ant on the Tree
给一颗树,1为根,要求遍历树上所有点,给出叶子结点的访问顺序,限制每条边至多访问两次。 首先这是一棵树,那么两点之间的路线是确定的,所以我第一遍dfs预处理出从根节点到每个叶子的路径保存,以便后面输出。 那么就按照题目要求输出叶子结点的顺序依次输出,然后从一个叶子到下一个叶子的时候,从他们的最近公共祖先转折,所以我还预处理了相邻两个叶子结点的LCA。 #include...
分类:其他好文   时间:2014-08-15 14:37:08    阅读次数:220
POJ 1330 Nearest Common Ancestors LCA(在线RMQ,离线Tarjan)
最近公共祖先(Least Common Ancestor)的两种解决方式,在线RMQ算法和离线Tarjan算法,并且整理成为模板。...
分类:其他好文   时间:2014-08-14 01:33:07    阅读次数:374
LCA 算法学习 (最近公共祖先)poj 1330
#include"stdio.h" #include"string.h" #include"vector" using namespace std; #define N 11000 const int inf=1<<20; vectorg[N]; int s,t,n; int f[N],pre[N],ans[N]; bool vis[N]; int findset(int x) { if(...
分类:其他好文   时间:2014-08-13 22:30:17    阅读次数:252
546条   上一页 1 ... 51 52 53 54 55 下一页
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!