首页 > 其他 > 详细

Tarjan离线求LCA

时间:2016-03-21 20:06:56      阅读:108      评论:0      收藏:0      [点我收藏+]

Tarjan离线算法,相当于就是把整个树给DFS了一遍。DFS的同时,处理关于当前节点的询问。复杂度就是:O(n + q),n为总结点数,q为询问结点对数。

具体是怎么一回事呢。

看一下这个画个图理解一下就好了。

 

//parent为并查集,FIND为并查集的查找操作
//QUERY为询问结点对集合
//TREE为基图有根树
 Tarjan(u)
      visit[u] = true
      for each (u, v) in QUERY
          if visit[v]
              ans(u, v) = FIND(v)
      for each (u, v) in TREE    
          if !visit[v]
              Tarjan(v)
              parent[v] = u

 

是的,感觉看完这个之后什么都记起来了。

Tarjan离线求LCA

原文:http://www.cnblogs.com/cherry231/p/5303154.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!