void dfs(int x){
v[x]=1;size[x]=1;
int max_part=0;//最大连通块的大小
for(int i=head[x];i;i=next[i]){
int y=ver[i];
if(v[y]) continue;
dfs(y);
size[x]+=size[y];
max_part=max(amx_part,size[y]);
}
max_part=max(max_part,n-size[x]);
if(max_part<ans){
ans=max_part;
root=x;//记录重心
}
}
树的重心
最新推荐文章于 2025-01-05 20:11:24 发布