首页 > 其他 > 详细

树链剖分

时间:2017-09-04 16:53:08      阅读:246      评论:0      收藏:0      [点我收藏+]

本以为树链剖分很难,没想到真的很难。。。不过理论AC就简单多了

 

给一棵树,给一系列关于路径的操作或者查询,这时候也许会用到树链剖分

对于这种在一条路径上的操作,如果暴力的话,这几次操作会有重复的部分

重复的话,把这条路径可以看作一段区间,线段树可以帮忙优化一下,但是路径太多了

 

这时就要用到一种算法叫做轻重链剖分,很简单,对于一个节点,和节点数最多的儿子相连的边,叫做重边,其他的叫做轻边

我们会发现一个很有趣的性质:重边可以形成几条链,叫做重链,重链之间通过一条轻边链接,自己画一下就可以了

 

这样来说,只要用线段树维护这几条重边就可以了,每次查询或者修改u,v两点,就让两点向同一个重链上靠,边靠边修改。

 

树链剖分

原文:http://www.cnblogs.com/tianzhituo6833/p/7474302.html

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