首页 > 其他分享 >树的直径

树的直径

时间:2023-02-18 21:25:06浏览次数:40  
标签:dist int 路径 bfs 直径 最远

能解决什么问题

找出树中最长的路径

算法思想

  • 任取一点,求该点到其他点的距离,找到离它最远的点 u
  • 求 u 到其他点的距离,找到离 u 最远的点 v
  • u,v 就是树的最长路径

由反证法易证:u 是树直径的一个端点

代码

bfs(1);
    
int u = -1;
for (int i = 1; i <= n; i++)
    if (u == -1 || dist[i] > dist[u])
        u = i;
            
bfs(u);
    
int v = -1;
for (int i = 1; i <= n; i++)
    if (v == -1 || dist[i] > dist[v])
        v = i;

标签:dist,int,路径,bfs,直径,最远
From: https://www.cnblogs.com/cong0221/p/17133635.html

相关文章

  • 大臣的旅费 【树的直径】【DFS】
    大臣的旅费Description很久以前,T王国空前繁荣。为了更好地管理国家,王国修建了大量的快速路,用于连接首都和王国内的各大城市。为节省经费,T国的大臣们经过思考,制定了一套优秀......
  • Comet OJ - Contest #9 & X Round 3 核心城市(树的直径)
    题目描述X国有 nn 座城市,n−1n−1 条长度为 11 的道路,每条道路连接两座城市,且任意两座城市都能通过若干条道路相互到达,显然,城市和道路形成了一棵树。X国国王决定将......
  • POJ 2631 Roads in the North(树的直径)
    DescriptionBuildingandmaintainingroadsamongcommunitiesinthefarNorthisanexpensivebusiness.Withthisinmind,theroadsarebuildsuchthatthereis......
  • leetcode-543二叉树直径
    //leetcodesubmitregionbegin(Prohibitmodificationanddeletion)/***Definitionforabinarytreenode.*publicclassTreeNode{*intval;*TreeNodeleft;......
  • 【DFS】LeetCode 543. 二叉树的直径
    题目链接543.二叉树的直径思路创建全局变量diameter以记录左子树高度加右子树高度,并在DFS过程中维护此变量。代码classSolution{intdiameter;publ......
  • 543. 二叉树的直径
    题目给定一棵二叉树,你需要计算它的直径长度。一棵二叉树的直径长度是任意两个结点路径长度中的最大值。这条路径可能穿过也可能不穿过根结点。注意:两结点之间的路径长度......
  • 树的直径的两种求法
    树的直径:给定一颗树,树的每条边都有一个权值,树中任意两点都有一条唯一路径,路径长度为连接两点的路径上的边权之和,路径长度最长的一条为树的直径,往往说的直径既可以指路径......
  • 查找所有树的直径都经过的边的数量
    P3304目录大体思路code此题思路上跟https://www.cnblogs.com/kingbuffalo/p/17027323.html上的思路差不多。目录大体思路第一遍dfs找到最远点第二遍dfs找到直......
  • leetcode-543. 二叉树的直径
    543.二叉树的直径-力扣(Leetcode)深度优先遍历,每个节点的直径等于左子树的最大深度加上右子树的最大深度,取一个最大值即可/***Definitionforabinarytreenode.......
  • 安装算量风管按周长(矩形)或直径(圆形)范围如何进行统计?
    答:风管计算完成后是可以按照周长(矩形)或直径(圆形)范围进行统计的。通过汇总表中将汇总方式中的区分规格范围选项勾选起即可,如图:附:上图中的周长或直径范围是软件默认的范围......