AcWing 846. 树的重心

简介: 笔记

AcWing 846. 树的重心


给定一颗树,树中包含n个结点(编号1~n)和n-1条无向边。


请你找到树的重心,并输出将重心删除后,剩余各个连通块中点数的最大值。


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


输入格式

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


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


输出格式

输出一个整数m,表示重心的所有的子树中最大的子树的结点数目。


数据范围

7.png

输入样例

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

输出样例:

4


代码

#include
#include
#include
using namespace std;
typedef long long ll;
typedef unsigned long long ull;
typedef pair PII;
const int N = 1e5 + 10;
int ans = 0x3f3f3f3f;
int n;
vectorvec[N];
int vis[N];
int dfs(int now) {
  vis[now] = 1;
  int sum = 1, res = 0;
  //res 剩余连通块中点数的最大值
  //sum 当前节点的子树点数再加上自己的点数
  for (int i = 0;i < vec[now].size();++i) {
    if (!vis[vec[now][i]]) {
      int s = dfs(vec[now][i]);//一个子树的大小
      res = max(res, s);//所有子树大小的最大值
      sum += s; //所有子树再加上根节点的大小
    }
  }
  res = max(n - sum, res);//父节点子树大小
  ans = min(ans, res); // 最大子树的最小值
  return sum;
}
int main() {
  cin >> n;
  for (int i = 0;i < n - 1;++i) {
    int u, v;
    cin >> u >> v;
    vec[u].push_back(v);
    vec[v].push_back(u);
  }
  dfs(1);
  cout << ans << endl;
}


目录
相关文章
|
Ubuntu 安全 网络安全
|
算法
3D打印新突破!曼大等提出DQN多样化图形路径规划器:锐角转弯降低超93%,热变形减少25%
【10月更文挑战第28天】曼彻斯特大学等机构的研究人员提出了一种基于深度Q网络(DQN)的3D打印路径规划器,能够高效处理多样化图形结构。该规划器在多个应用中表现出色,包括线框打印、连续纤维打印和金属打印,显著提高了打印质量和效率。然而,其复杂性和可扩展性仍需进一步优化。论文链接:https://arxiv.org/pdf/2408.09198
210 6
|
Java C++
18、JAVA入门——接口
18、JAVA入门——接口
258 0
18、JAVA入门——接口
leetcode第19题
上边我们遍历链表进行了两次,我们如何只遍历一次呢。 看了 leetcode 的讲解。 想象一下,两个人进行 100m 赛跑,假设他们的速度相同。开始的时候,第一个人就在第二个人前边 10m ,这样当第一个人跑到终点的时候,第二个人相距第一个人依旧是 10m ,也就是离终点 10m。 对比于链表,我们设定两个指针,先让第一个指针遍历 n 步,然后再让它俩同时开始遍历,这样的话,当第一个指针到头的时候,第二个指针就离第一个指针有 n 的距离,所以第二个指针的位置就刚好是倒数第 n 个结点。
176 0
leetcode第19题
|
17小时前
|
人工智能 自然语言处理 JavaScript
2026年Windows+Ollama本地部署OpenClaw保姆级教程:本地AI Agent+阿里云上快速搭建
2026年OpenClaw凭借本地部署、私有化运行的特性,成为打造个人智能体的核心工具,而Ollama作为轻量级本地大模型管理工具,能让OpenClaw摆脱对云端大模型的依赖,实现**本地推理、数据不泄露、全流程私有化**的智能体验。本文基于Windows 11系统,从硬件环境准备、Ollama安装与模型定制、OpenClaw部署配置、技能扩展到常见问题排查,打造保姆级本地部署教程,同时补充阿里云OpenClaw(Clawdbot)快速部署步骤,兼顾本地私有化需求与云端7×24小时运行需求,文中所有代码命令均可直接复制执行,确保零基础用户也能快速搭建属于自己的本地智能体。
1249 4
|
11天前
|
人工智能 自然语言处理 监控
OpenClaw skills重构量化交易逻辑:部署+AI全自动炒股指南(2026终极版)
2026年,AI Agent领域最震撼的突破来自OpenClaw(原Clawdbot)——这个能自主规划、执行任务的智能体,用50美元启动资金创造了48小时滚雪球至2980美元的奇迹,收益率高达5860%。其核心逻辑堪称教科书级:每10分钟扫描Polymarket近千个预测市场,借助Claude API深度推理,交叉验证NOAA天气数据、体育伤病报告、加密货币链上情绪等多维度信息,捕捉8%以上的定价偏差,再通过凯利准则将单仓位严格控制在总资金6%以内,实现低风险高频套利。
5731 52
|
1天前
|
人工智能 安全 机器人
2026版OpenClaw(Clawdbot)部署指南:Windows本地+阿里云上集成方案,无缝对接飞书机器人
在AI智能体工具爆发的2026年,OpenClaw(前身为Clawdbot、Moltbot)凭借“高权限系统操作+多平台即时通讯对接”的核心优势,成为个人与企业部署私有AI助手的首选。这款开源工具支持通过飞书、Telegram、Discord等常用聊天软件,实现文件读写、日程管理、系统命令执行、多模型调用等多样化功能,真正做到“聊天框里搞定所有事”。
1068 5
|
7天前
|
存储 人工智能 负载均衡
阿里云OpenClaw多Agent实战宝典:从极速部署到AI团队搭建,一个人=一支高效军团
在AI自动化时代,单一Agent的“全能模式”早已无法满足复杂任务需求——记忆臃肿导致响应迟缓、上下文污染引发逻辑冲突、无关信息加载造成Token浪费,这些痛点让OpenClaw的潜力大打折扣。而多Agent架构的出现,彻底改变了这一现状:通过“单Gateway+多分身”模式,让一个Bot在不同场景下切换独立“大脑”,如同组建一支分工明确的AI团队,实现创意、写作、编码、数据分析等任务的高效协同。
2252 27
|
29天前
|
人工智能 自然语言处理 Shell
🦞 如何在 OpenClaw (Clawdbot/Moltbot) 配置阿里云百炼 API
本教程指导用户在开源AI助手Clawdbot中集成阿里云百炼API,涵盖安装Clawdbot、获取百炼API Key、配置环境变量与模型参数、验证调用等完整流程,支持Qwen3-max thinking (Qwen3-Max-2026-01-23)/Qwen - Plus等主流模型,助力本地化智能自动化。
40624 156
🦞 如何在 OpenClaw (Clawdbot/Moltbot) 配置阿里云百炼 API