动态点分治总结

Posted gzy-cjoier

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了动态点分治总结相关的知识,希望对你有一定的参考价值。

动态点分治总结


其实也没有做很多道题,但是还是总结一波吧.......

要知道动态点分治,首先得知道点分治.

点分治就是对于一个联通块,求出这个联通块的重心,然后把这个联通块分为很多个联通块,这些联通块都为这个重心的子树,那么求出这些子树对于重心的贡献,然后递归地做下去,由于重心的每一棵子树大小都小于联通块的一半,那么可以达到快速求解的目的.

动态点分治,在点分治的基础上,利用分治的过程重新构建一颗点分树,那么每一次修改都只会影响到点分树上的父亲节点,重新计算对于这些节点的贡献即可,由于点分树的高度是严格log的,那么每一次修改都只需要修改log个节点的贡献.

在修改的过程中,动态点分治可以十分灵活,不过不可避免的要写个求LCA,个人的习惯是写树链剖分,因为复杂度不是满的.对于维护,可以有很多种维护方式,通常都需要维护联通块到自己这个重心,和父亲重心的贡献,至于用什么来维护,根据题目而定,像线段树(动态开点),堆,数组等都是可以的.

以上是关于动态点分治总结的主要内容,如果未能解决你的问题,请参考以下文章

动态点分治

动态点分治学习笔记

分治动态点分治 ([ZJOI2007]捉迷藏)

动态点分治入门 ZJOI2007 捉迷藏

动态点分治入门随讲

BZOJ3730震波(动态点分治)