求助,WA on #1(样例可过)
查看原帖
求助,WA on #1(样例可过)
804607
rainygame楼主2023/4/28 21:31

不知道哪里错了。

#include <bits/stdc++.h>
using namespace std;
#define MAXN 10001

int n, u, v, maxn, s1, ans;

struct Edge{
	int v, w;
};
vector<Edge> e[MAXN];
int dis[MAXN];

void dfs(int x, int now){
	if (dis[x] <= now) return;
	dis[x] = now;
	for (auto i: e[x]) dfs(i.v, i.w+now);
}

int main(){
	ios::sync_with_stdio(false);
	cin.tie(0);
	cout.tie(0);
	
	cin >> n;
	for (int i=1; i<n; i++){
		cin >> u >> v;
		e[u].push_back({v, 1});
		e[v].push_back({u, 1});
	}
	
	memset(dis, 0x3f, sizeof(dis));
	dfs(1, 0);
	for (int i=1; i<=n; i++){
		if (maxn < dis[i]){
			dis[i] = maxn;
			s1 = i;
		}
	}
	
	memset(dis, 0x3f, sizeof(dis));
	dfs(s1, 0);
	
	maxn = 0;
	for (int i=1; i<=n; i++) maxn = max(maxn, dis[i]);
	
	cout << maxn;
	
	return 0;
}

2023/4/28 21:31
加载中...