当前位置: 首页 > news >正文

树的重心及dfs

1.什么是树的重心?
Ⅰ.找到一个节点,使得在该节点被删除后,分裂出来的所有连通块中,最大的那个连通块的大小(节点数)最小。(换句话说,重心是这棵树最“平衡”的一个点。)
Ⅱ.以该节点为根节点时,所有的子树(连通块)的大小不超过 N / 2
Ⅲ.树中所有其他节点距离之和最小的节点。

2.为什么要这么定义树的重心?
Ⅰ为了保证树上分治、二分、归并等操作复杂度最优,每次操作都找到树中最“平衡”的点开始,即树的重心。
Ⅱ树的重心到其他节点总距离最小。

3.怎么理解在定义中,Ⅰ和Ⅲ等价?
如果连通块不是最小,那么目前的节点可以朝着大的连通块方向”移动“一步,从而缩小总距离。

dfs求树的重心:

#include<bits/stdc++.h>
#define maxn = 1e5+4
#define inf 1e9+1
using namespace std;vector<int> adj[maxn];
int centroid; // 重心位置
int maxpart[maxn]; // 节点i作为分割点时最大连通块大小
int finalmaxpart = inf;
int sz[maxn]; // 以i为根的子树的大小
int n;void dfs(int u, int fa) {sz[u] = 1;maxpart[u] = 0;for (auto v : adj[u]) {if (v == p) continue;dfs(u, v);sz[u] += sz[v];maxpart[u] = max(maxpart[u], sz[v]);}if (maxpart[u] < finalmaxpart) {finalmaxpart = maxpart[u];centroid = u;}
}// dfs(rt, -1);
http://www.jsqmd.com/news/65146/

相关文章:

  • 详细介绍:如何进行AI作图(架构图,流程图等)
  • 2025年进口地板十大品牌综合实力榜:聚焦高端家居与智能化未来
  • openEuler 软件生态多元适配评测:分布式存储与大数据组件实战验证
  • 2025 最新机器视觉检测服务商 / 厂家 TOP5 评测!智能检测赋能制造升级,权威榜单助力企业选型,智慧工厂设计、建设及管理解决方案
  • 短视频矩阵架构搭建指南:源码部署与全流程解析
  • 2025年中国五大铝氧化着色生产企业推荐,看哪家工艺水平高
  • 2025年12月中国GEO服务商综合推荐分析:摘星AI引领全球
  • 揭秘WAAP:现代Web应用与API保护的四大核心安全支柱
  • Java基础学习知识点笔记
  • 深入解析:从阿里云大模型服务平台百炼看AI应用集成与实践
  • 完整教程:Docker学习笔记---day001
  • AI搜索排名优化公司推荐:解锁智能时代曝光与转化新密码
  • 2025年中国气力输送厂五大推荐,看哪家技术实力强
  • 2025年国内GEO(AI搜索优化)营销公司推荐排行榜分析:摘星ai引领行业智造
  • 在 S2S 场景中理解 On-Behalf-Of (OBO) 流程
  • 2025 年 12 月苏作红木家具品牌匠心推荐榜:东方雅韵与传世工艺的收藏级甄选
  • .NET Core WebAPI 中使用 MISE + S2S 的三种方式
  • NetCore使用WCF简单方式
  • 2025年无锡上料机靠谱厂家推荐:看哪家技术实力强?
  • 2025年度靠谱的实验室反应釜厂家TOP5权威推荐
  • 基于Python+Vue开发的婚恋交友管理系统源码+运行步骤+计算机专业
  • 2025-12-07 GitHub 热点项目精选
  • Java集合List详解:从入门到精通 - 教程
  • Python线程指南
  • 【基础】Unity着色器编程的语言和数学基础介绍
  • 2025年评价高的Q235模具钢/模具钢45#锯切厂家最新权威推荐排行榜
  • 显微镜品牌哪家强?2025年最新市场格局分析与五大高价值品牌推荐
  • 2025年质量好的高温风机厂家推荐及选购参考榜
  • offline meta RL | 论文速读记录
  • 2025年重庆五大板栗鸡店排行榜,南坪好吃板栗鸡店推荐及测评