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

树的重心

时间:2025-01-22 23:20:53浏览次数:1  
标签:lfloor 子树 frac 重心 rfloor 性质

一、什么是树的重心

所谓树的重心指的是删掉这个点之后可以使所有子树中大小最大的那一个最小。
树的重心满足一些性质:

  • 性质 \(1\):删掉树的重心之后,所有子树的大小不都超过 \(\lfloor\frac{n}{2}\rfloor\),\(n\) 指树的节点数量。
  • 性质 \(2\):如果有两个树的重心,那么这两个点一定是一条边的两个端点。
  • 性质 \(3\):树的重心到树上所有点的路径数的和最小。

二、树的重心性质证明

1.性质 \(1\)

首先从性质 \(1\) 开始,直觉告诉我它是对的,首先要知道一个不需要证明的东西,就是如果连树的重心都无法满足性质 \(1\),那其它点也无法满足性质 \(1\),因为树的重心会使删掉这个点之后所有子树中大小最大的那一个最小,那么它肯定将所有子树分割的很均匀(学过贪心算法的人都知道吧),直白的讲就是把这些子树的大小分割的差不多,那么连这么分割都无法满足性质 \(1\),那其它点就更不可能满足性质 \(1\) 了,好了,然后继续,那么假设我们虚拟一个树,设置它的重心为 \(x\),如果 \(x\) 的子树中有一个的大小超过了 \(\lfloor\frac{n}{2}\rfloor\)(不可能有两个超过),其余的子树大小都小于 \(\lfloor\frac{n}{2}\rfloor\),那么我们可以把树的重心 \(x\) 跳到它这个儿子上,那么这个子树的大小自然就缩小了,其余子树的大小自然就放大了,当然了,不可能出现这个子树的大小还没缩小到 \(\lfloor\frac{n}{2}\rfloor\) 其余最大的子树的大小就已经大于 \(\lfloor\frac{n}{2}\rfloor\) 了,因为这样一来这些子树的大小加起来都大于 \(n\) 了,性质 \(1\) 得证。

2.性质 \(2\)

然后就是性质 \(2\),这个性质非常奇怪,直觉都告诉我似乎不对,因为如果有多个树的重心,那么说明此时从任何一个重心调整到另外一个重心不影响答案,那么只有可能这个重心一边是极限(\(\lfloor\frac{n}{2}\rfloor\)),一边是极限减 \(1\)(\(\lfloor\frac{n}{2}\rfloor-1\)),显然此时 \(n\) 一定是偶数,否则加在一起答案就不是 \(n\),然后由于调整都是调整到儿子上,所以从这个重心跳到另外一个重心,它只需要经过一条边,那么此时重心就不可能有大于两个了,而且都是在一条边上,性质 \(2\) 得证。

3.性质 \(3\)

标签:lfloor,子树,frac,重心,rfloor,性质
From: https://www.cnblogs.com/linjinkun/p/18686935

相关文章

  • E92 换根DP+倍增 P5666 [CSP-S2019] 树的重心
    视频链接:E92换根DP+倍增P5666[CSP-S2019]树的重心_哔哩哔哩_bilibili   P5666[CSP-S2019]树的重心-洛谷|计算机科学教育新生态(luogu.com.cn)//换根DP+倍增O(nlogn)#include<iostream>#include<cstring>#include<algorithm>#include<vector>us......
  • 使用三角形重心坐标生成任意网格内的一点
    1.重心坐标三角形重心坐标(BarycentricCoordinates)可以通过alpha、beta、gamma三个权重总和为1的插值系数得到三角形内任意一点,可以用此求出某点的重心坐标系数,或是给出系数得到一点:publicclassTest:MonoBehaviour{publicTransformp0;publicTransformp1......
  • 信息学奥赛初赛天天练-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......