树的直径与最近公共祖先
Chandery
人工智能是未来
展开
-
浅谈树上倍增
Tarjan LCA http://blog.csdn.net/cdy1206473601/article/details/77104910 讲解 上次写了Tarjan LCA,但是当这棵树是一条链的话,时间复杂度就很高啦!所以,我们可以用倍增来解决。但是,在随机数据下,Tarjan是快于倍增的! 好吧,倍增思想就是设一个fa[i][j]表示i结点的第2j2j2^j级祖先。然后就可以通...原创 2017-08-15 07:51:05 · 723 阅读 · 0 评论 -
浅谈LCA(最近公共祖先)
简介 首先是最近公共祖先的概念(什么是最近公共祖先?): 在一棵没有环的树上,每个节点肯定有其父亲节点和祖先节点,而最近公共祖先,就是两个节点在这棵树上深度最大的公共的祖先节点。 换句话说,就是两个点在这棵树上距离最近的公共祖先节点。 所以LCA主要是用来处理当两个点仅有唯一一条确定的最短路径时的路径。 讲解 我们今天介绍一种计算LCA的方法——Tarjan。 ...原创 2017-08-12 07:47:04 · 1013 阅读 · 0 评论