首页 > 其他分享 >树的重心和直径

树的重心和直径

时间:2022-10-24 17:58:47浏览次数:70  
标签:sub 重心 int dfs 直径 dis size

树的重心

1.以重心为树根时,所有子树的大小不超过全树大小的一半。

2.树中所有点到某个点的距离和中,重心的距离和是最小的,如果有两个重心,那么到它们的距离和一样。

3.把两棵树通过一条边相连得到一棵新的树,那么新的树的重心在连接原来两棵树的重心的路径上。

4.在一棵树上添加或删除一个叶子,那么它的重心最多只移动一条边的距离。

void getcenter(int u, int fa)
{
	size[u] = 1, sub[u] = 0;
	for (int i = hd[u]; i; i = g[i].nxt)
	{
		int v = g[i].to;
		if (v == fa)continue;
		getcenter(v, u);
		size[u] += size[v];
		sub[u] = max(sub[u], size[v]);
	}
	sub[u] = max(sub[u], n - size[u]);
	if (sub[u] < sub[center] || (sub[u] == sub[center] && u < center))
		center = u;
	return;
}

 

树的直径

性质:在一棵树上距离任何一个点最远的点一定是直径的某一端点。

void dfs(int u, int f)
{
	fa[u] = f;
	if (dis[u] > dis[far])
		far = u;
	for (int i = hd[u]; i; i = g[i].nxt)
	{
		int v = g[i].to, w = g[i].val;
		if (v == f) continue;
		dis[v] = dis[u] + w;
		dfs(v, u);
	}
	return;
}
dis[1] = 0, dfs(1, 0);
dis[far] = 0, dfs(far, 0);

 

标签:sub,重心,int,dfs,直径,dis,size
From: https://www.cnblogs.com/xqk0225/p/16822244.html

相关文章

  • GB-T 193-1981 普通螺纹 直径与螺距系列(直径1_600mm)
          ......
  • 米粒上铣出56个汉字,全球最小直径0.01mm铣刀用在哪里?
    机械制图中你最常用的字号是多少?如果是“B型10号”那么笔划宽度为1mm如果把0.01mm笔划宽度的汉字放在你眼前你能认出来?那是不可能滴!如果放大呢这是金洲研制的直径0.01mm铣刀......
  • 树的重心
    定义对于树上的每一个点,计算其所有子树中最大的子树节点数,这个值最小的点就是这棵树的重心。性质以树的重心为根时,所有子树的大小都不超过整棵树大小的一半。树中......
  • 二叉树的直径和最大距离问题
    二叉树的直径和最大距离问题作者:Grey原文地址:博客园:二叉树的直径和最大距离问题CSDN:二叉树的直径和最大距离问题二叉树的直径给定一棵二叉树,你需要计算它的直径长度......
  • 二叉树的直径
    二叉树的直径题目给定一棵二叉树,你需要计算它的直径长度。一棵二叉树的直径长度是任意两个结点路径长度中的最大值。这条路径可能穿过也可能不穿过根结点。代码var......
  • 加工大长度、大直径内孔用镗孔工具
    在加工大型圆锥破碎机的锥形铜套(见图1)时遇到了工艺难题:如在W200镗床上加工铜套的锥形内孔,镗杆行程不足(最大行程1600mm),且无法加工锥形孔;如在车床上采用加长刀杆的方法加......
  • 大直径硬质合金铰刀的修复方法
    在镗床等大型机床镗孔,一般需要使用铰刀来控制孔径尺寸,当刀具磨损了以后,可采用图所示的方法,把铰刀修好。图:铰刀的修复法1.刀片2.锥销3.刀体 修复的方法:是在铰刀每个硬质合......
  • 树的直径
    树的直径树上任意两节点之间最长的简单路径即为「树的直径」求法1两次DFS定理:在一棵树上,从任意节点开始进行一次DFS,到达的距离其最远的节点必为直径的一端。(所有......
  • 图论基础:欧拉路,拓扑排序,树的直径与重心
    欧拉路首先结论:一个图存在欧拉路则每个点的入度等于出度或者一个点的入度比出度大一(终点),一个点的入度比出度小一(起点),其他点入度等于出度。然后是朴实无华的爆算。void......
  • 树的直径
    树的直径给定一棵树,树的每条边都有一个权值,树中两点之间的距离定义为连接两点的路径上的边权之和。树上最远的两个节点之间的距离被称为树的直径,连接这两点的路径被称为树......