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

树的直径

时间:2022-08-14 17:27:27浏览次数:50  
标签:int dfs ans 直径 d2 节点 d1

 1 int dfs(int u,int fa){
 2     int d1=0,d2=0;
 3     for(int i=head[u];i;i=e[i].next){
 4         int v=e[i].v;
 5         if(v==fa)
 6             continue;
 7         int d=dfs(v)+e[i].w;
 8         if(d>d1){
 9             d2=d1,d1=d;
10         }
11         else if(d>d2)
12             d2=d;
13     }
14     ans=max(ans,d1+d2);
15     return d;
16 }

可以任取一个节点作为根节点做为根节点,因为这个过程是递归的,可以证明这与取n个节点再求的答案是一样的

标签:int,dfs,ans,直径,d2,节点,d1
From: https://www.cnblogs.com/YYcanmake/p/16585801.html

相关文章