首页 > 代码库 > BZOJ 3626 LCA(离线+树链剖分)
BZOJ 3626 LCA(离线+树链剖分)
首先注意到这样一个事实。
树上两个点(u,v)的LCA的深度,可以转化为先将u到根路径点权都加1,然后求v到根路径上的总点权值。
并且该题支持离线。那么我们可以把一个区间询问拆成两个前缀和形式的询问。
现在问题就变成了求[1,r]和x的LCA深度之和。实际上就是把[1,r]到根路径点权点1,然后求x到根路径上的总权值。
我们按编号从小往大依次加路径点权。然后就可以有序处理询问。用树链剖分维护的话,总复杂度为O((n+q)lognlogn).
BZOJ 3626 LCA(离线+树链剖分)
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。