#include<bits/stdc++.h>
#pragma GCC optimize(2)
#define int long long
#define ull unsigned long long
#define endl '\n'
using namespace std;
const int N=1e5;
int fa[N+50],pre[N+50],si[N+50],r[N+50];
struct node
{
int from,to,next;
}a[N*2+50];
int n,k;
void add(int u,int v)
{
k++;
a[k].to=v;
a[k].next=pre[u];
pre[u]=k;
}
int dfs(int x,int f)
{
si[x]=1;
fa[x]=f;
for(int i=pre[x];i!=0;i=a[i].next)
{
if(a[i].to!=f)
{
si[x]=si[x]+dfs(a[i].to,x);
}
}
return si[x];
}
signed main()
{
ios::sync_with_stdio(0);
cin.tie(0);
cout.tie(0);
cin>>n;
int x,y;
for(int i=1;i<=n-1;i++)
{
cin>>x>>y;
add(x,y);
add(y,x);
}
dfs(1,0);
int mi=INT_MAX;
for(int i=1;i<=n;i++)
{
r[i]=n-si[i];
for(int j=pre[i];j!=0;j=a[j].next)
{
if(fa[a[j].to]==i)
{
r[i]=max(r[i],si[a[j].to]);
}
}
mi=min(mi,r[i]);
}
for(int i=1;i<=n;i++)
{
if(r[i]==mi)
{
cout<<i<<" ";
}
}
return 0;
}
相关推荐
模板 - 树上问题(树的直径、动态查询树的直径、树的重心)
整理的算法模板合集: ACM模板 目录一、树的直径树形DP两次DFS / BFS(找到直径的两个端点)二、动态修改树的边权并求每个时刻的直径(线段树)三、树的重心 一、树的直径 树的直径满足如下性质: 若有多条直径,则所有的直径之间皆有公共点。 直径的两端一定是叶子。 树中距离某一直径端点最远的点,至少有一个是该直径的另一个端点。 对于树上任意一个点,与之距离最远的一个点,至少有一个直径的端点。 给你一个无权无向的树。编写程序以输出该树中最长路径(从一个节点到另一个节点)的长度。在这
图论--树的重心(DFS) 模板
const int maxn=500005; int tot=0,n; int ans,size; int sx[maxn],head[maxn]; int vis[maxn]; struct edge { int to,next; } eg[maxn]; void add(int u,int v) { eg[tot].to=v; eg[tot].next=head[u]...
高温环境下RS485通信故障分析与MOS管解决方案
RS485通信作为工业控制领域的基础总线技术,其可靠性直接影响系统稳定性。在高温等恶劣环境下,传统三极管开关电路会因温度特性导致通信故障。通过分析三极管Ube电压随温度变化的特性,揭示了电路失效的物理原理。相比之下,MOS管作为电压控制型器件,具有温度稳定性好、功耗低等优势,更适合工业环境应用。本文通过一个发动机舱内RS485通信故障的实际案例,详细对比了三极管与MOS管在高温环境下的性能差异,并给出了具体的电路改进方案。该案例对工业通信接口设计具有普遍参考价值,特别适用于需要应对高温、振动等挑战性环境的硬
[YM]模板-树的重心
树的某个节点,当去掉该节点后,树的各个连通分量中,节点数最多的连通分量其节点数达到最小值。上图5就是重心,没有再优的点使得分割的最大连通块大小最小化。dfs每个节点的子节点来统计siz大小。学此之前还是要掌握一下基础的树形dp。那么节点上面的子树大小就是n-siz。最大子树大小最小的节点就是树的重心。求子树的大小就用到了树形dp。实质就是统计各个子树的大小。最后统计最大子树的大小即可。由于dfs是向下递归。
使用spacy规则化提取自然语言文本信息
1. 安装spacy pip install spicy spicy还需要载入文本库,使用pip的下载方式: python3 -m spacy download en_core_web_sm 但是很有可能因为网络问题下载速度非常缓慢,所以可以选择到github上去直接下载(注意和自己的spacy版本匹配):github下载链接 下载*.tar.gz文件即可。 然后切换到下载路径, pip install en_core_web_sm-3.1.0.tar.gz 2. spacy的一些基础用法 使用spa
别再到处找教程了!Windows下用FFmpeg+Mediamtx+VLC搭建本地RTSP流媒体服务器,保姆级配置流程
本文详细介绍了在Windows系统下使用FFmpeg、Mediamtx和VLC搭建本地RTSP流媒体服务器的完整流程。从环境准备到核心配置,再到推流和拉流的实战技巧,提供了保姆级的避坑指南和优化建议,帮助开发者快速实现稳定的流媒体服务部署。
9.8 树的重心、图的联通块、拓扑排序理解 +模板代码+《算法进阶指南》例题
树的重心、图的联通块、拓扑排序理解 +模板代码+《算法进阶指南》例题
耶鲁大学《博弈论》课程——逆向归纳
耶鲁大学《博弈论》课程——逆向归纳
846. 树的重心
846. 树的重心
H3C模拟器HCL防火墙路由模式主备配置实验
摘要:本文详细介绍了网络拓扑规划与设备配置方案。运营商仅提供一个接口地址,通过虚IP技术实现双防火墙高可用部署:主备防火墙分别配置10.20.10.1/29和10.20.10.2/29作为实际上联地址,共享10.10.10.2/24虚IP;下联配置172.168.10.0/24网段,核心交换机配置VLAN接口及192.168.10.1、192.168.20.1两个下联接口。文章包含运营商路由器、防火墙(HA配置、VVRP设置)和核心交换机的具体命令行配置步骤,并强调需进行主备切换验证。整个方案实现了单运营商
LSTM 双向 Bi-LSTM
LSTM 双向 Bi-LSTM
树的重心模板 / poj1655
树的重心
Unity之Timeline教程
Unity Timeline是Unity的一种时间轴编辑器工具,用于制作和管理游戏中的动画、剧情以及事件触发。它提供了直观的界面,使得开发者可以通过拖放操作轻松创建和编辑时间轴。Activation Track:用于控制物体的激活状态。可以在轨道上添加关键帧,控制物体的激活和非激活状态。Animation Track:用于处理物体的动画。可以在此轨道上添加关键帧,编辑物体的动画状态。Audio Track:用于处理场景中的音频。可以管理音频的播放、暂停、淡入淡出等操作。
Balancing Act POJ - 1655 (树的重心模板题)
Balancing Act POJ - 1655 (树的重心模板题) 题目链接 题目大意:给定一棵树,求树的重心的编号以及重心删除后得到的最大子树的节点个数size,如果size相同就选取编号最小的. Input 1 7 2 6 1 2 1 4 4 5 3 7 3 1 output 1 2 树的重心: 找到一个点,其所有的子...
Open3D 计算FPFH特征【2025最新版】
FPFH特征描述子的python实现,本文最新更新时间为:2025年3月18日。
jdk-8u144-linux-x64.tar.gz.
该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包
U104609 【模板】树的重心
U104609 树的重心模板
LinePhone3.2.7(android端最新版本) sip客户端
SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/
树的重心(模板题)
树的重心: 树的重心也叫树的质心。找到一个点,其所有的子树中最大的子树节点数最少,那么这个点就是这棵树的重心,删去重心后,生成的多棵树尽可能平衡。 #include<iostream> #include<algorithm> #include<cstring> using namespace std; const int N=1e5+10; //用链表结构存储每个点的边 int h[N]; //h[]用于存储每个点的头节点 int e[2*N]; //用
Statistics and Machine Learning Toolbox
Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具
ET2012新版免狗免安装绿色软件
ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,
求树的重心 模板
树的重心: 树的重心也叫树的质心。找到一个点,其所有的子树中最大的子树节点数最少,那么这个点就是这棵树的重心,删去重心后,生成的多棵树尽可能平衡。 void dfs(int u,int pre) { num[u]=1; f[u]=0; for(int i=head[u];i;i=e[i].next) { int v=e[i].to; if(v...
[模板]树的重心
/** [模板] 求树的重心 [任务] 求树的重心 [接口] vector<edge> way[maxn] 无向图 int siz[] 该节点的子节点个数(包括自己) int mu[] 该节点的(最大,节点数最多)子树的节点数 allnode
U328173 【模板】树的重心 题解
U328173 【模板】树的重心## 题目背景本蒟蒻正在学习树的重心,然而搜不到对应模板题,于是自己出了一道模板题。## 题目描述给定一棵无根树,求这棵树的重心(可能有多个)。计算以无根树每个点为根节点时的最大子树大小,这个值最小的点称为无根树的重心。## 输入格式第一行一个整数 $n$ 代表树的点数。接下来 $n - 1$ 行,每行两个整数 $u, v$,代表 $u, v$ 之间有一条无向边。## 输出格式一行多个整数,表示你找到的所有重心的节点编号,升序排列。
树的重心 poj3701 模板题
树的重心也叫树的质心。找到一个点,其所有的子树中最大的子树节点数最少,那么这个点就是这棵树的重心,删去重心后,生成的多棵树尽可能平衡。 思路:dfs深搜+回溯 poj3701 (有多个重心) AC代码: #include<iostream> #include<algorithm> #include<cstdio> #include<cstrin...
树的重心(模板)
代码定义:树的重心也叫树的质心。对于一棵树n个节点的无根树,找到一个点,使得把树变成以该点为根的有根树时,最大子树的结点数最小。换句话说,删除这个 [1] 点后最大连通块(一定是树)的结点数最小。 性质: 树中所有点到某个点的距离和中,到重心的距离和是最小的,如果有两个距离和,他们的距离和一样。 把两棵树通过一条边相连,新的树的重心在原来两棵树重心的连线上。 ...
树的重心 背诵用模板
树的重心=最大子树节点数 最小 的点 void dfs(int now,int fu){ size[now]=1; int maxx=0; for (int i=xia[now];i!=-1 ; i=hou[i]){ int nd=zhong[p]; if (nd==fu || you[nd]) continue;
AcWing 846. 树的重心(模板)
给定一颗树,树中包含n个结点(编号1~n)和n-1条无向边。 请你找到树的重心,并输出将重心删除后,剩余各个连通块中点数的最大值。 重心定义:重心是指树中的一个结点,如果将这个点删除后,剩余各个连通块中点数的最大值最小,那么这个节点被称为树的重心。 输入格式 第一行包含整数n,表示树的结点数。 接下来n-1行,每行包含两个整数a和b,表示点a和点b之间存在一条边。 输出格式 输出一个整数m,表示重心的所有的子树中最大的子树的结点数目。 数据范围 1≤n≤105 输入样例 9 1 2
1676



被折叠的 条评论
为什么被折叠?



