狠狠的T了
查看原帖
狠狠的T了
674609
poxiao019楼主2024/12/12 16:14

佬们,不是树形dp的dfs能过吗,我dfs狠狠的T了

#include<bits/stdc++.h>
using namespace std;
int h[100005],cnt,max1=0;
struct node{
	int v,next;
}e[100005];
int d[100005];
int vis[100005];
int far=0;
void add(int x,int y){
	e[++cnt]={y,h[x]};
	h[x]=cnt;
}
void dfs(int x,int dep){
    vis[x]=1;
	for(int i=h[x];i;i=e[i].next){
		int v=e[i].v;
		if(vis[v])continue;
		dfs(v,dep+1);
		d[x]=max(d[x],dep+1);
	}
}
int main(){
	int n;
	cin>>n;
	for(int i=1;i<n;i++){
		int a,b;
		cin>>a>>b;
		add(a,b);
		add(b,a);
	}
	dfs(1,0);
	int ans=0;
	int id=0;
	for(int i=1;i<=n;i++){
		if(ans<d[i]){
			ans=d[i];
			id=i;
		}
	}
    memset(vis,0,sizeof(vis));
	dfs(id,0);
	for(int i=1;i<=n;i++)ans=max(ans,d[i]);
	cout<<ans<<endl;
	return 0;
}
2024/12/12 16:14
加载中...