您所在位置: 网站首页 / 树的重心与直径.ppt / 文档详情
树的重心与直径.ppt 立即下载
2024-08-13
约665字
约5页
0
56KB
举报 版权申诉
预览加载中,请您耐心等待几秒...

树的重心与直径.ppt

树的重心与直径.ppt

预览

在线预览结束,喜欢就下载吧,查找使用更方便

10 金币

下载文档

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

树的重心算法分析:
建立边表data。由于是无向的,因此边表长度为(N-1)*2。边表按照p1端点递增的顺序排序,以便计算每一个顶点的边表序号
树的基本操作:以结点1为根,计算出每个结点所在的子树的结点数。
枚举每一个结点,若将其删掉,那么考虑剩余的所有连通分量。
1、它的子树,其结点数可以直接调用。
2、它的上方子树,其结点数可通过n-1-减去所有子树的结点数算出。
这样,在其中选择d(i)最小的即可。时间复杂度:O(N),空间复杂度:O(N)voiddfs(inti){
	intj,k;
	j=last[i];
	size[i]=1;
	while(j!=0){
		k=other[j];
		if(k!=father[i]){
			father[k]=i;
			dfs(k);
			size[i]+=size[k];
			if(ans[i]<size[k])ans[i]=size[k];
		}
		j=pre[j];
	}
	if(n-size[i]>ans[i])ans[i]=n-size[i];
	return;
}树的直径原理:设起点为u,第一次BFS找到的终点v一定是树的直径的一个端点
证明:1)如果u是直径上的点,则v显然是直径的终点(因为如果v不是的话,则必定存在另一个点w使得u到w的距离更长,则于BFS找到了v矛盾)
2)如果u不是直径上的点,则u到v必然于树的直径相交(反证),那么交点到v必然就是直径的后半段了
所以v一定是直径的一个端点,所以从v进行BFS得到的一定是直径长度
查看更多
单篇购买
VIP会员(1亿+VIP文档免费下)

扫码即表示接受《下载须知》

树的重心与直径

文档大小:56KB

限时特价:扫码查看

• 请登录后再进行扫码购买
• 使用微信/支付宝扫码注册及付费下载,详阅 用户协议 隐私政策
• 如已在其他页面进行付款,请刷新当前页面重试
• 付费购买成功后,此文档可永久免费下载
全场最划算
12个月
199.0
¥360.0
限时特惠
3个月
69.9
¥90.0
新人专享
1个月
19.9
¥30.0
24个月
398.0
¥720.0
6个月会员
139.9
¥180.0

6亿VIP文档任选,共次下载特权。

已优惠

微信/支付宝扫码完成支付,可开具发票

VIP尽享专属权益

VIP文档免费下载

赠送VIP文档免费下载次数

阅读免打扰

去除文档详情页间广告

专属身份标识

尊贵的VIP专属身份标识

高级客服

一对一高级客服服务

多端互通

电脑端/手机端权益通用