树与图的深度优先遍历dfs

题目点这里

#include<iostream>
#include<algorithm>
#include<string.h>
using  namespace std;
const   int N=200010;
int e[N],h[N],idx,ne[N];
void add(int a,int b)
{
   
    e[idx]=b,ne[idx]=h[a],h[a]=idx++;
}
int n,m;
bool st[N];
int ans=0x3f3f3f3f;
int dfs(int u)//该点的所有子节点边数
{
   
    st[u]=1;
    int res=0;
    int sum=1;
    for(int i=h[u];i!=-1;i=ne[i])
    {
   
        int j=e[i];
        //printf("u=%d,j=%d\n",u,j);
        if(!st[j])
        {
   
           int  t=dfs(j);
          sum+=t;
          res=max(res,t);
        }
    }
    res=max(res,n-sum);
    ans=min(ans,res);
    return sum;
}
int main()
{
   
    cin>>n;
    memset(h,-1,sizeof(h));
  for(int i=0;i<n-1;i++)
    {
   
        int a,b;
        cin>>a>>b;
        add(a,b);add(b,a);
    }
    int  t=dfs(1);
    printf("%d\n",ans);
    return 0;
}
全部评论

相关推荐

不愿透露姓名的神秘牛友
昨天 14:10
啊啊啊啊好幸福,妈妈是我找工作发疯前的一束光
榕城小榕树:你是我见过最幸福的牛客男孩
点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
07-09 12:02
ssob上原来真有BOSS啊
硫蛋蛋:这种也是打工的,只不是是给写字楼房东打工
点赞 评论 收藏
分享
能干的三文鱼刷了10...:公司可能有弄嵌入式需要会画pcb的需求,而且pcb能快速直观看出一个人某方面的实力。看看是否有面试资格。问你问题也能ai出来,pcb这东西能作假概率不高
点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
今天 11:21
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务