一.树的重心
定义:一个顶点,子树最大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
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。