首页 > 其他分享 >树的重心

树的重心

时间:2024-10-23 15:47:27浏览次数:4  
标签:子树 重心 siz 大小 两棵树 节点

什么是树的重心?

树上选取一个点,使得最大的子树大小最小的点叫做重心。

重心有很多优美的性质,求重心是容易的,不再阐述。

  • 1.以重心为树根时,最大的子树的大小不超过全树大小的一半,同时条件是充要的

对于充分性:
考虑调整法。不妨现在钦定一个重心 \(u\) 作为树根,有一个儿子 \(v\) 且 \(siz_v>\frac{n}{2}\),那么,将重心(根节点)移动到这个子树内是一定不劣的,因为 \(n-siz_v<siz_v\),所以 \(n-siz_v\le \frac{n}{2}\),不难发现一直调整即可。

对于必要性:
考虑一个点 \(u\) 满足最大的子树的大小不超过全树大小的一半。
那么,只要去往任意一个儿子 \(v\) ,最大子树大小会变成 \(n-siz_v\),所以这个子树内不会产生重心,除非 \(siz_v=\frac{n}{2}\)。如果不考虑这个情况的话,发现 \(u\) 是无法调整的,也就是重心。能调整的话只有 \(siz_v=\frac{n}{2}\) 的情况,而且只能调整一步。换句话说,这两个点都是重心。顺便证明了一条性质:

  • 2.一颗树最多只有两个重心,且这两个重心一定是相邻的。此时树一定有偶数个节点,且可以被划分为两个大小相等的分支,每个分支各自包含一个重心。

  • 3.一棵树的重心一定在根节点所在的重链上。

由 \(1\) 证明得到。上面的过程就是一直在跳重链。

  • 4.如果树的所有边权都为 \(1\),那么树中所有点到某个点的距离和中,到重心的距离和是最小的;如果有两个重心,那么到它们的距离和一样。反过来,距离和最小的点一定是重心。

考虑钦定根节点为这个距离最小的点,然后使用调整法,发现还是一个一直跳重链的过程,终止条件就是 \(n-siz_u>siz_u\),也就是跳到重心了

  • 5.在一棵树上添加或删除一个叶子,那么它的重心最多只移动一条边的距离。

满足移动的条件是儿子 \(v\) 满足 \(siz_v>n-siz_v\),所以它只会往这个方向移动至多一步。

  • 6.把两棵树通过一条边相连得到一棵新的树,则新的重心在较大的一棵树一侧的连接点与原重心之间的简单路径上。如果两棵树大小一样,则重心就是两个连接点。
    另外一种说法:把两棵树通过一条边相连得到一棵新的树,那么新的树的重心在连接原来两棵树的重心的路径上。

由 5 推出。

标签:子树,重心,siz,大小,两棵树,节点
From: https://www.cnblogs.com/g1ove/p/18496601

相关文章

  • 信息学奥赛初赛天天练-91-CSP-S2023基础题3-编译命令、树的重心、拓扑排序、进制转换
    PDF文档公众号回复关键字:202409172023CSP-S选择题1单项选择题(共15题,每题2分,共计30分:每题有且仅有一个正确选项)11以下哪个命令,能将一个名为main.cpp的C++源文件,编译并生成一个名为main的可执行文件?()Ag++-omainmain.cppBg++-omain.cppmainCg++......
  • 19031 树的重心
    ###思路1.使用DFS遍历树,计算每个节点的子树大小。2.计算每个节点的最大连通块大小。3.找到最大连通块大小最小的节点,即为树的重心。###伪代码1.读取输入数据,构建树的邻接表。2.定义DFS函数,计算每个节点的子树大小。3.遍历所有节点,计算每个节点的最大连通块大小......
  • 树的重心
    树的重心性质:一个点是重心,等价于,以这个点为根,它的每个子树的大小,都不会超过整个树大小的一半(充要条件)性质及其证明POJ3107模板这题卡vector注意判断数组越界voiddfs(inti,intfa){ siz[i]=1; inttmp=0; for(intj=head[i];~j;j=e[j].next){ intv=e[j].to; if(v!......
  • 通达信心理重心战术副图指标公式源码
    {通达信心理重心战术副图指标公式源码}N:=12;{参数可以自己调整}stICKLINE(1,100,100,10,0),COLOR0099FF;STICKLINE(1,0,0,10,0),COLOR0099FF;STICKLINE(1,80,80,1.5,0),COLORYELLOW;STICKLINE(1,20,20,1.5,0),COLORYELLOW;STICKLINE(1,50,50,0.7,0),COLORWHITE;MID:=(......
  • 中心 重心
    中心重心重心 和 中心 是两个不同的概念,但在某些情况下可以互换使用。以下是它们的定义和使用场景:重心:在数学和物理学中,重心是指一个图形或物体的几何中心点,它位于所有边或面(如果有的话)的质心位置。对于三角形来说,重心是位于三条边上的中线交点。在更复杂......
  • 重心的意思是指代事、物的核心或主要部分。
    重心的意思是指代事、物的核心或主要部分。一、重心的多种释义1、在日常语言中重心通常用来指代事物的核心或主要部分,例如“工作的重心”或“问题的重心”。2、在物理上重心是指物体各部分所受重力的合力的作用点。质量分布均匀的物体(均匀物体),重心的位置只跟物体的形状有关。......
  • 重心法判断点是否在三角形内
    1)点在三角形的边上时AP=AE+AF(向量加法)设AE=v*AB,AF=u*AC; 则AP=v*AB+u*AC(二元一次方程,u,v为我们引入的变量)根据向量三点共线定理可知:u+v=1 2) 点在三角形内时AE不变, 让AF变短一些, 当用u*AC表示AF时,u的值肯定也比1)中小了,所以此时u+v<1 所以点是否在三......
  • 数学基础:三角形重心坐标插值公式的证明
    在快速Phong明暗处理(Blinn-Phong明暗处理)时,出现了三角形重心坐标插值公式,但没有给出证明.网上也鲜有证明过程,这里给出证明.问题描述:在三角形ABC中,三顶点A、B、C坐标分别为\((x_1,y_1,z_1)、(x_2,y_2,z_2)、(x_3,y_3,z_3)\).则三角形内任一点P(x,y,z)可表示为:\[\tag{1}P=\alph......
  • P5666 [CSP-S2019] 树的重心
    考虑一个结点在什么情况下会成为重心。随便钦定一个根结点。对于结点\(u\),假设割掉了其子树\(v\)中的某条边或连接\(u\)和\(v\)的边,形成了一棵大小为\(k\)的新树。令\(mx\)表示除\(v\)子树外最大的子树大小(或\(n-siz_u\))。如果\(u\)成为了重心根据定义有\(2\ti......
  • 关于三角形的四种心(外心,内心,重心,垂心)
    外心三条边垂直平分线的交点为外心。到三顶点距离相等内心三条内角平分线的交点为内心。到三条边的距离相等同时是内切圆的圆心重心三条中心的交点为重心同时是物理意义上的重心公式:\(G(x_0,y_0),x_0=\frac{x_1+x_2+x_3}{3},y_0=\frac{y_1+y_2+y_3}{3}\)垂心......