树的直径

C++树形结构(2 树的直径) 树的直径 阅读详情

文章目录

两遍dfs

void dfs1(int u,int fa){
    for(int i = head[u];i;i = e[i].next){
        int v = e[i].to;
        if(v != fa){
            dis1[v] = dis1[u] + e[i].w;
            if(dis1[v] > dis1[st]) st = v;
            dfs1(v,u);
        }
    }
}
void dfs2(int u,int fa){
    for(int i = head[u];i;i = e[i].next){
        int v = e[i].to;
        if(v != fa){
            dis2[v] = dis2[u] + e[i].w;
            if(dis2[v] > dis2[ed]) ed = v;
            dfs2(v,u);
        }
    }
}

int main(){
	dfs1(1,0);
    dfs2(st,0);
    //直径是dis2[ed]  起点为st,终点为ed
}	

树形dp

void dp(int u,int fa){
    for(int i = head[u];i;i = e[i].next){
        int v = e[i].to;
        if(v == fa) continue;
        dp(v,u);
        d1 = max(d1,dis[u] + dis[v] + e[i].w);//d1就是直径啦
        dis[u] = max(dis[u],dis[v] + e[i].w);
    }
}

树的直径 | Diameter of a Tree | C/C++实现 问题描述 请求出权值非负的无向树T的直径。我们将树的最远结点之间的距离称为树的直径。 输入: 输入按照以下形式给出 nnn s1s_1s1​ t1t_1t1​ w1w_1w1​ s2s_2s2​ t2t_2t2​ w2w_2w2​ … sn−1s_{n-1}sn−1​ tn−1t_{n-1}tn−1​ wn−1w_{n-1}wn−1​ 第1行输入表示树结点数的整数n。树的各结点编号分别为0到n-1... 阅读详情

相关推荐

树的直径及一点性质

树的直径及一点性质定义求法树上DP两遍dfs小性质&证明性质&证明 定义 树中最长的简单路径,可能有多个。很多时候也指这个路径的长度。 求法 树上DP 两遍dfsdfsdfs瞎搞一通,第一遍求出每个节点向下走到儿子的最远距离,第二遍求出每个节点先走到父亲的最远距离。比下面的难写亿倍。 两遍dfs 从任意一点ppp出发,找到最远点qqq,再任找一个到qqq的最远点rrr,则(r,q)(r,q)(r,q)为一条直径。 小性质&证明 从任意一点ppp出发,找到最远点qqq,则一定有一条直径

qq_42139597的博客 849

C++题解:树的直径

树的直径。

少儿编程乔老师 3383

MATLAB新手也能懂:用MATPOWER 8.0b搞定电力系统潮流计算(附case9实战代码)

本文详细介绍了如何使用MATPOWER 8.0b在MATLAB中进行电力系统潮流计算,特别适合新手入门。通过case9实战案例,讲解了从安装配置到运行牛顿-拉夫逊法潮流计算的全过程,包括结果分析和常见问题处理,帮助读者快速掌握这一电力系统分析的核心技能。

weixin_26757925的博客 381

c++树的直径

我们可以先任意取一点进行一遍dfs求出离它最远的点a,再以求出的那个点再进行一次dfs求出离它最远的点b,此时。给定一棵树,每条边上有边权,树上距离最远的两个点之间的距离叫树的直径。如图,图中的直径为11。

triangle_617的博客 932

工业界实战:小红书推荐系统中的AB测试策略解析——分层、Holdout与反转实验

本文深入解析了小红书推荐系统在工业界实践中采用的AB测试核心策略。重点阐述了分层实验如何解决多实验并行与干扰问题,Holdout机制如何作为评估黄金标准提供稳定基准,以及反转实验如何作为全量上线后的终极安全网进行风险控制。这些策略共同构成了科学、严谨的线上评估体系,是保障推荐系统迭代效果与决策质量的关键。

transformer2023的博客 477

SDR实战(五)-AD9361多芯片同步技术详解

本文详细解析了AD9361多芯片同步技术在SDR系统中的实现方法,涵盖硬件连接方案、软件配置流程及同步验证技巧。通过等长时钟走线、低抖动时钟分配和精确的SYNC信号控制,解决MIMO系统中多AD9361芯片的时钟同步难题,提升系统性能与稳定性。

weixin_30952535的博客 762

【图论C++】树的直径(DFS 与 DP动态规划)

树上 最远的两个节点之间 的距离被称为 **树的直径**,连接这两个点的路径 被称为 **树的最长链**。

qq_73928885的博客 1760

基于Vector 的AUTOSAR NvM 模块使用

本文主要讲述Vector的两款工具configurator和Developer关于NvM的配置流程,包括如何新建NvM SWC以及添加和修改NvM block,Developer主要涉及NvM SWC的新建、添加新NvM Block以及修改原有的NvM Block;Configurator主要涉及三个模块NvM、Fee以及Fls,以下将分为两个模块对该部分进行介绍。 一、Developer 使用 1.1 新建NvM SWC并实例化 如下图,为Developer左列列表 图 1.1...

Fly_To_Skyhehe的博客 4967

C++树(二)【直径,中心】

详细介绍了c++树的直径,中心的性质及证明方法

weixin_70468627的博客 1646

Python爬虫实战:抓取全球各国海关进出口数据的全流程教程

本文系统介绍了用Python采集全球各国海关进出口数据的完整流程,从数据源调研、技术选型,到代码实战、数据处理和存储,最后还拓展了进阶反爬和动态内容处理方法。希望这篇博文能帮助你掌握专业的数据采集技能,为后续数据分析和商业应用奠定坚实基础。

2201_76125261的博客 2362

42页Claude 3技术报告解读(Opus, Sonnet, Haiku)

在Claude 3模型中,增加了一个额外的原则到Claude的宪法中,以鼓励尊重残疾人权利,这一原则源自对集体宪法AI的研究。Claude 3模型的训练基于专有的混合数据集,包括截至2023年8月互联网上公开可用的信息,以及第三方提供的非公开数据、数据标注服务和付费承包商提供的数据,还有内部生成的数据。这些初始响应通常包含有害和有毒的内容。Claude 3模型家族在推理、编码和问答任务上展现出卓越的性能,特别是在行业标准基准测试中取得了显著的提升,证明了其在处理复杂问题和提供准确答案方面的能力。

具身机器人和通用AI 2439

树的直径——详解

树上任意两节点之间最长的简单路径即为树的「直径」。前置知识:树基础。显然,一棵树可以有多条直径,他们的长度相等。可以用两次DFS或者树形DP的方法在时间求出树的直径。SPOJPT07Z,Longestpathinatree给定一棵个节点的树,求其直径的长度。。首先从任意节点开始进行第一次DFS,到达距离其最远的节点,记为,然后再从开始做第二次DFS,到达距离最远的节点,记为,则即为树的直径。显然,如果第一次DFS到达的节点是直径的一端,那么第二次

w_w_wwwww的博客 1436

Unreal5从入门到精通之Landscape地形系统

虚幻引擎 5 (UE5) 能够利用其强大的地形编辑工具套件创建大规模的地形世界。使用地形工具可以创建身临其境的户外地形,这些地形经过优化,可在多种不同设备上保持可播放的帧速率。

TxNet 4145

树的直径概念及求解

树上任意两节点之间最长的简单路径即为树的「直径」。显然,一棵树可以有多条直径,他们的长度相等。可以用两次 DFS/BFS 或者树形 DP 的方法在 O(n) 时间求出树的直径。

To the beyond and infinity! 3008

STM32F103RCT6的FLASH读写操作

STM32F103RCT6是一款常用的32位微控制器,它具有内置的FLASH存储器,可以用于存储程序代码和数据。在本文中,我们将详细介绍如何进行STM32F103RCT6的FLASH读写操作,并提供相应的源代码。写入数据时,我们通过将数据直接写入FLASH地址来完成。通过使用适当的API和规则,我们可以有效地读取和写入数据。写入FLASH时,我们需要按特定的规则进行编程。首先,我们需要包含适当的头文件和定义相关的宏和变量,以便在代码中使用FLASH API。类型的指针,我们可以直接读取FLASH中的数据。

UplKubernetes的博客 1034

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

填坑行动7-树的直径及求出树的直径路径

文章目录树的直径的定义求出树的直径的长度 树的直径的定义 树的直径是树里面最长的一条链。树的直径不仅仅只有一条。 求树的直径有两种方法:搜索和树形DP。这里主要介绍树形DP。 求出树的直径的长度 ...

jiangtaizhe的博客 805

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

树的直径详解

树的直径,又称树的最长链,定义为一棵树上最远的两个节点的路径,即树上一条不重复经过某一条边的最长的路径。树的直径也可以代指这条路径的长度。 求树的直径有两种比较常用的方法:树形DP和搜索,时间复杂度均为$O(n)$。接下来会对两种方法都进行讲解。 在接下来的实现中,树是以邻接表存无向边的形式给出的。 树形DP 设$d_x$表示从$x$走向以其为根的子树,能够到达的最远距离。再...

6239

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

树的直径总结

树的直径总结

ZhuRanCheng的博客 1186

DFS求树的直径

这个知识点我是在刷题的时候遇见的,正好也学过dfs,所以这个知识点就吸收的特别快,学这个之前记得要把dfs弄懂后再看证明任意一点P搜出的最远端点Q必定为直径的某一端!!!!!!

筏的博客 1789

树的直径及应用

树的直径:   树的直径指树上距离最远的两点间的距离,它在树上问题上有许多应用,往往通过树的直径的性质可以将一个高时间复杂度的解法变为线性求解。 树的直径的性质: (1)(1)(1).对树上的任意一点而言,树上与它距离最远的点一定为树的直径的两个端点的其中之一; (2)(2)(2).直径两端点一定是两个叶子节点; (3)(3)(3).对于两棵树,如果第一棵树直径两端点为(u,v)(u,v)(u,v...

weixin_43184669的博客 992

【算法专题】树的直径

树的直径 定义:树中距离最远的两个点之间的距离被称为树的直径。 1 做法 做法一 (1)任取一点作为起点x,找到距离该点最远的一个点y; (2)再找到距离y最远的一点z,那么y、z之间的路径就是一条直径。 证明:核心是证明y一定是直径的一个端点。使用反证法证明,存在如下两种情况。 假设y不是直径的一个端点。假设uv是直径。 对于情况一:因为y是距离x最远的一个点,因此有ya + ax >= ua + ax,所以ya >= ua,所以yv >= uv,因此yv才是

weixin_42638946的博客 2533

树的直径,树的中心性质整理

本文中,设树中所有权都是正的。 直径的定义:不经过同一个点两次的最长链。 中心的定义:对于点 \(u\),如果满足所有点到点 \(u\) 距离的最大值最小,则点 \(u\) 是中心。 请注意树的中心和树的重心是两个不同的概念。 本文中 \(u \sim v\) 代表树上 \(u \leftrightsquigarrow v\) 唯一路径的权值。 性质一 如果一个点 \(u\) 在一条直径 \(D...

crab_xbc的博客 823
上一篇: 洛谷试炼日记(图论)(解题报告)
下一篇: 0x01 内容总结与例题习题
juruo_c
博客等级 码龄6年 520粉丝 116原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值