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

题解:AcWing 846 树的重心

【题目来源】

AcWing:846. 树的重心 - AcWing题库

【题目描述】

给定一颗树,树中包含\(n\)个结点(编号\(1\sim n\))和\(n-1\)条无向边。请你找到树的重心,并输出将重心删除后,剩余各个连通块中点数的最大值。

重心定义:重心是指树中的一个结点,如果将这个点删除后,剩余各个连通块中点数的最大值最小,那么这个节点被称为树的重心。

【输入】

第一行包含整数\(n\),表示树的结点数。

接下来\(n-1\)行,每行包含两个整数\(a\)\(b\),表示点\(a\)和点\(b\) 之间存在一条边。

【输出】

输出一个整数\(m\),表示将重心删除后,剩余各个连通块中点数的最大值。

【输入样例】

9
1 2
1 7
1 4
2 8
2 5
4 3 
3 9
4 6

【输出样例】

4

【解题思路】

image

image

image

【算法标签】

《AcWing 846 树的重心》 #DFS# #树形DP#

【代码详解】

#include <bits/stdc++.h>
using namespace std;const int N = 100010, M = N * 2; // 定义常量
int h[N], e[M], ne[M], idx; // 邻接表存储图
bool st[N]; // 标记数组,记录节点是否被访问过
int n, m; // n 是节点数量,m 是边的数量
int ans; // 存储最终结果,即树的重心的最小最大子树大小// 添加边的函数
void add(int a, int x) {e[idx] = x;       // 存储边的终点ne[idx] = h[a];   // 将新边插入到节点 a 的邻接表头部h[a] = idx++;     // 更新节点 a 的邻接表头指针
}// DFS 函数,计算以 u 为根的子树大小,并更新树的重心
int dfs(int u) {int sum = 1; // 当前子树的大小,初始为 1(包括当前节点)int uson = 0; // 当前节点的最大子树大小st[u] = true; // 标记当前节点为已访问// 遍历当前节点的所有邻接节点for (int i = h[u]; i != -1; i = ne[i]) {int j = e[i]; // 邻接节点 jif (!st[j]) { // 如果节点 j 未被访问过int s = dfs(j); // 递归计算以 j 为根的子树大小sum += s; // 累加子树大小uson = max(uson, s); // 更新最大子树大小}}// 计算当前节点的最大子树大小(包括父节点方向的子树)int maxt = max(n - sum, uson);// 更新全局最小值ans = min(ans, maxt);return sum; // 返回以 u 为根的子树大小
}int main() {memset(h, -1, sizeof(h)); // 初始化邻接表头指针为 -1cin >> n; // 读取节点数量ans = n; // 初始化结果为最大值// 读取边的信息并构建图for (int i = 1; i <= n - 1; i++) {int a, b;cin >> a >> b; // 读取边的两个端点add(a, b); // 添加边 a -> badd(b, a); // 添加边 b -> a}dfs(1); // 从节点 1 开始 DFScout << ans; // 输出结果return 0;
}

【运行结果】

9 
1 2
1 7
1 4
2 8
2 5
4 3
3 9
4 6
4
http://www.jsqmd.com/news/394557/

相关文章:

  • 自感注册权:非存在论的存在之守护
  • 2026最新!AI论文写作软件 千笔 VS 灵感ai,研究生高效写作首选!
  • 2026年2月去油去屑洗发水,这几个牌子值得一试,去屑洗发水/止痒去屑洗发水/去油去屑洗发水,去油去屑洗发水产品口碑推荐 - 品牌推荐师
  • lazarus自定义mainmenu菜单栏
  • 一文讲透|10个AI论文网站测评:MBA毕业论文写作+开题报告必备工具推荐
  • 自感注册权:非存在论的存在之守护——AI元人文对存在论僭越与技术还原主义的临界批判
  • 题解:AcWing 517 信息传递
  • 题解:AcWing 1189 刻录光盘
  • 2026年1月玉米粉碎机厂家口碑榜,这些推荐很靠谱,挤压造粒机/翻堆机/双螺杆造粒机/药材粉碎机,粉碎机实力厂家排行 - 品牌推荐师
  • 想高价回收杉德斯玛特卡?一站式平台与高效流程攻略 - 团团收购物卡回收
  • 上帝之眼_数理艺术编程_C++精灵库编程案例
  • 题解:AcWing 1164 加工零件
  • 国内开源大模型竞争加剧,技术迭代与应用落地成焦点
  • 2026隧道/机房/装饰钢板厂家推荐:无锡华龙机房新型装饰材料有限公司,多品类钢板供应 - 品牌推荐官
  • 【Redis】Ubuntu22.04安装redis++ - 实践
  • 题解:AcWing 848 有向图的拓扑序列
  • 2026盘式过滤机厂家推荐:连云港格律诗环保设备,陶瓷/真空过滤机全系供应,技术领先 - 品牌推荐官
  • 题解:AcWing 847 图中点的层次
  • 工业成品多维检测模型 - 指南
  • 2026年铝单板生产厂家实力推荐:金盛铝业有限公司,抗菌/超耐候/仿石材/双曲铝单板全系供应 - 品牌推荐官
  • 武商一卡通如何快速回收?简单安全的平台与流程推荐 - 团团收购物卡回收
  • Sophos Firewall (SFOS) v21.5 MR2 发布 - 下一代防火墙
  • 2026年防腐涂料推荐:鲸鱼防腐涂料,环氧锌黄/煤沥青/云铁/富锌等全系产品供应 - 品牌推荐官
  • 【CTFshow-pwn系列】03_栈溢出【pwn 049】详解:静态编译下的 mprotect 权限修改技巧
  • 2026年车丝机设备厂家推荐:航城科技有限公司,PVC/PE/钢管数控车丝机全系供应 - 品牌推荐官
  • 把坑都踩完了,AI论文写作软件 千笔·专业论文写作工具 VS 云笔AI
  • 2026年光伏系统全流程服务商推荐:浙江兆基电力科技,组件安装/阵列排布/电站施工一站式服务 - 品牌推荐官
  • 2026年流量计生产厂家推荐:江苏雷泰自动化仪表,气体涡轮/超声波/电磁/涡街流量计全品类供应 - 品牌推荐官
  • 2026冲刺用!顶流之选的AI论文软件 —— 千笔ai写作
  • 2026年水肥一体机设备厂家推荐:山东淋垚智慧农业科技,智能/移动/精准施肥设备全系供应 - 品牌推荐官