码迷,mamicode.com
首页 > 其他好文 > 详细

Tarjan离线求LCA

时间:2016-03-21 20:08:42      阅读:297      评论: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
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!