听灌多
  • 板块灌水区
  • 楼主TFHS_arsc
  • 当前回复8
  • 已保存回复8
  • 发布时间2024/8/8 14:31
  • 上次更新2024/8/8 15:25:31
查看原帖
听灌多
821849
TFHS_arsc楼主2024/8/8 14:31

树的直径球调

//树の直径
#include<iostream>
#include<vector>
#include<cstring>

using namespace std;
typedef long long LL;

int n;
vector <int> e[1145141];
int dis[1145141];
int c;
int vis[1145141];
void dfs(int u){
	for(int i=0;i<e[u].size();i++){
		if(vis[i]) continue;
		vis[i]=1;
		dis[i]=dis[u]+1;
		if(dis[i]>dis[c]) c=i;
		dfs(i);
//		vis[i]=0;
	}
}

int main(){
	
	cin>>n;
	for(int i=1;i<n;i++){
		int x,y;
		cin>>x>>y;
		e[x].push_back(y);
		e[y].push_back(x);
	}
	dfs(1);
	dis[c]=0;
	dfs(c);
	cout<<dis[c];
	
	return 0;
}
2024/8/8 14:31
加载中...