寻找最近公共祖先
来源:互联网 发布:php get获取json数据 编辑:程序博客网 时间:2024/05/01 11:22
http://www.cppblog.com/myjfm/archive/2011/05/12/146282.aspx
http://blog.csdn.net/cxllyg/article/details/7635992
1、看递归就知道其实还是深度遍历这棵树;
2、首先使当前节点u的父指针指向自己;
3、处理u的所有孩子节点,每处理完一个孩子节点就让孩子节点的父指针指向u,即将孩子节点所在的集合与u的集合合并;
4、u的全部孩子处理完毕则将u标记为处理结束,即checked[u] = 1;
5、处理所有和u相关的询问,比如query[u][i] = v,则如果v已经被处理结束,则u和v必然处在一棵并查集树上,并且这棵树的根节点一定是他们的公共祖先(为什么?画图找实例然后手动运行一遍不难理解,因为每个节点(比如为x)运行完之后就将x的父指针指向它的父亲(这时父亲节点的父指针依然指向自己),然后再去运行x的兄弟节点,这时兄弟节点下的某个节点(比如y)如果在查询中,且查询如果恰好是(y, x的子孙),则x所在并查集树中的根节点一定是x的父节点,而这个父节点也是y的祖先,因此可知(y, x的子孙)的祖先一定包含x的父节点,由上面过程知道不能可包含比x的父节点更低的祖先节点,因此x的祖先节点必然是(y, x的子孙)的最近公共祖先);这样说必然很难理解,不过找个真正的实例运行一遍就一目了然了~
0 0
- 寻找最近公共祖先
- 寻找两个节点的最近公共祖先
- 经典算法:寻找最近公共祖先
- 二叉树寻找最近公共祖先
- 寻找二叉树两节点的最近的公共祖先
- 最近公共祖先LCA
- 最近公共祖先(LCA)
- 最近公共祖先
- Lca 最近公共祖先
- 【最近公共祖先】Tree
- LCA----最近公共祖先
- 最近公共祖先问题
- LCA (最近公共祖先)
- POJ1330(最近公共祖先)
- 最近公共祖先
- 最近公共祖先模版
- 最近公共祖先问题
- 最近公共祖先
- 主题模型TopicModel:通过gensim实现LDA
- 使用jemalloc(或tcmalloc)优化MYSQL(安装步骤)
- java PropertyDescriptor 应用及源码分析
- Hadoop之——HBase笔记
- Isomorphic Strings
- 寻找最近公共祖先
- 国泰君安实习笔试面试情况
- hdoj 2824 The Euler function 【欧拉函数 简单】
- 基于BeautifulSoup的网页文本提取(1)
- 答题总结(1)
- tomcat的CATALINA_HOME变量
- 慕课网HTML5学习笔记 (下)
- postfix收发邮件大小和webmail空间大小设定
- 《机器学习实战》--Logistic回归