文章

4

粉丝

0

获赞

3

访问

785

头像
南京理工-树的高度 题解:dfs
P1841 南京理工大学机试题
发布于2025年3月23日 21:00
阅读数 222

#include<bits/stdc++.h>
using namespace std;
const int N =10010;
const int M = 2*N;
int n ,m;
int h[N],e[M],ne[M],idx;
bool st[N];
int res =0;
void add(int a ,int b){
    e[idx]=b,ne[idx]=h[a],h[a]=idx++;
}
void dfs(int root,int deep){
    st[root]=1;
    for(int i =h[root];i!=-1;i=ne[i]){
        int j = e[i];
        if(st[j]) continue;
        dfs(j,deep+1);
    }
    res=max(res,deep);
}
int main(){
    cin>>n>>m;
    memset(h,-1,sizeof h);
    for(int i =1;i<n;i++){
        int a,b;
        cin>>a>>b;
        add(a,b);
        add(b,a);
    }
    dfs(m,0);
 ...

登录查看完整内容


登录后发布评论

暂无评论,来抢沙发