博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
树的点分治专题
阅读量:5230 次
发布时间:2019-06-14

本文共 1137 字,大约阅读时间需要 3 分钟。

树的点分治(以下简称“点分治”)算法同后缀数组一样,也是很早就接触但几乎没练过的算法。此专题总结一下过去遇到的若干树的点分治题目。

树的重心

的题面给出了树的重心(centroid(s) of a tree)的定义:

Given a tree with $N$ vertices, in order to define the centroid, some integer value will be assosciated to every vertex. Let's consider the vertex $k$. If we remove the vertex $k$ from the tree (along with its adjacent edges), the remaining graph will have only $N-1$ vertices and may be composed of more than one connected components. Each of these components is (obviously) a tree. The value associated to vertex $k$ is the largest number of vertices contained by some connected component in the remaining graph, after the removal of vertex $k$. All the vertices for which the associated value is minimum are considered centroids.

简言之即:树中一点,删去它后所得若干棵树的节点数的最大值最小。

树的重心通过简单的DP即可求得。

树的重心的性质 $\DeclareMathOperator{\size}{size}$

以树的重心为根,则子树的点数不超过 $\frac{N}{2}$ 。

证明:将重心记为 $u$,取 $u$ 的某个儿子 $v$,子树 $v$ 的点数记为 $\size(v)$ 。若 $\size(v) > \frac N2$,则以点 $v$ 为根,所有子树的点数最大值将不超过 $\max\{ \size(v) - 1, N - \size(v)\}< \size(v)$,这意味着 $u$ 并不是树的重心。证毕。

注:上述 $\frac N2$ 是在实数下的除法,不是按某种规则取整之后的。

Exercise

转载于:https://www.cnblogs.com/Patt/p/6369924.html

你可能感兴趣的文章
MongoDB遇到的疑似数据丢失的问题。不要用InsertMany!
查看>>
android smack MultiUserChat.getHostedRooms( NullPointerException)
查看>>
实用的VMware虚拟机使用技巧十一例
查看>>
监控工具之---Prometheus 安装详解(三)
查看>>
不错的MVC文章
查看>>
IOS Google语音识别更新啦!!!
查看>>
[置顶] Linux终端中使用上一命令减少键盘输入
查看>>
BootScrap
查看>>
路冉的JavaScript学习笔记-2015年1月23日
查看>>
Mysql出现(10061)错误提示的暴力解决办法
查看>>
2018-2019-2 网络对抗技术 20165202 Exp3 免杀原理与实践
查看>>
NPM慢怎么办 - nrm切换资源镜像
查看>>
Swift - UIView的常用属性和常用方法总结
查看>>
Swift - 异步加载各网站的favicon图标,并在单元格中显示
查看>>
【Python学习笔记】1.基础知识
查看>>
梦断代码阅读笔记02
查看>>
selenium学习中遇到的问题
查看>>
大数据学习之一——了解简单概念
查看>>
Linux升级内核教程(CentOS7)
查看>>
Lintcode: Partition Array
查看>>