前言
话说点分治真的是好久好久以前就接触过的东东了。
但是一直没有真正实现过,巩固过,只停留于表面。
那今天就来康康这东东是干嘛的。
介绍
点分治是基于树上的一种分治方法(类似于边分治),用于处理大规模的树上路径问题。
可以类比于一般的分治算法,大分子点分治也是把问题分成一半一半地来做。
不同的是淀粉质点分治是把树分成一半一半来做。
具体怎么把树分治,下面就来看。
中心思想
由于是把树分成一半一半,而且又是以点为分治中心,那么树中有一个非常特别的点满足这个性质。
那就是重心。
众所周知,以树的重心为根,则最大的子树的大小最大为n2\frac n 22n。
得到分治中心后,我们考虑如何维护树中的路径信息。分类讨论:
- 1、 路径并不经过当前的分治中心(也就是当前求的树的重心)
- 则直接分治到下一层来做即可。
- 2、 路径经过当前的分治中心,有两种情况:
- 以分治中心为路径一个端点。
- 纯粹是经过分治中心。(这种就是上种情况拼在一起)
例题
待填


297

被折叠的 条评论
为什么被折叠?



