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

树链剖分

时间:2017-09-04 16:56:47      阅读:133      评论:0      收藏:0      [点我收藏+]

标签:简单   自己   理论   nbsp   操作   bsp   链接   关于   有趣的   

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

 

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

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

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

 

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

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

 

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

 

树链剖分

标签:简单   自己   理论   nbsp   操作   bsp   链接   关于   有趣的   

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

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