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

BZOJ 3626 LCA(离线+树链剖分)

时间:2017-05-04 18:29:37      阅读:176      评论:0      收藏:0      [点我收藏+]

标签:支持   处理   前缀和   复杂度   ognl   注意   树链剖分   维护   依次   

首先注意到这样一个事实。

树上两个点(u,v)的LCA的深度,可以转化为先将u到根路径点权都加1,然后求v到根路径上的总点权值。

并且该题支持离线。那么我们可以把一个区间询问拆成两个前缀和形式的询问。

现在问题就变成了求[1,r]和x的LCA深度之和。实际上就是把[1,r]到根路径点权点1,然后求x到根路径上的总权值。

我们按编号从小往大依次加路径点权。然后就可以有序处理询问。用树链剖分维护的话,总复杂度为O((n+q)lognlogn).

 

BZOJ 3626 LCA(离线+树链剖分)

标签:支持   处理   前缀和   复杂度   ognl   注意   树链剖分   维护   依次   

原文地址:http://www.cnblogs.com/lishiyao/p/6808313.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!