树的重心和直径
作者:互联网
一.树的重心
定义:一个顶点,子树最大siz最小的
性质:
(1)**多个点到一个点的距离和最小,这个点是重心
比如医院入住,先求出每个点到1的花费,f[1],推f[son1]时,考虑
每个son1上的点少走了siz[son1]步,其他的多走了totsize-siz[son1]步
f[son1]=f[1]+f[1]-f[son1]-f[son1]
(2)**重心<=2,而且一定相邻
(3)*在叶子上加或者删除点,重心最多移动一条边
(2)(3)放在一起,
给你一棵树,让你只能删除再添加一条边,使得只有1个重心
你就可以把1号重心上上的一个点加到2号上去
证明:则重心一定移动到2号
否则,假如移动多步,跑远了,与(3)矛盾
假如移动到其他任意非2号位置,与(2)矛盾
(4)两个树连边,new重心在两个重心连线上
标签:一个点,重心,siz,son1,点到,直径,移动 来源: https://www.cnblogs.com/403caorong/p/16499031.html