求调,玄关
查看原帖
求调,玄关
1610290
no_response楼主2025/7/28 14:57
#include <bits/stdc++.h>
using namespace std;
vector <int> so[110];
int fa[110], ww[110];
int d, w, l;
int x, y;
bool flag;
void dfs(int k, int h) {
	d = max(d, h);
	ww[h]++;
	int sizes = so[k].size();
	if (sizes == 0) {
		return ;
	}
	for (int i = 0; i < sizes; i++) {
		dfs(so[k][i], h + 1);
	}
}
int main() {
	int n;
	cin >> n;
	for (int i = 1; i < n; i++) {
		int u, v;
		cin >> u >> v;
		if (v < u) {
			swap(u, v);
		}
		so[u].push_back(v);
		fa[v] = u;
	}
	cin >> x >> y;
	dfs(1, 1);
	cout << d << endl;
	for (int i = 1; i <= d; i++) {
		w = max(w, ww[i]);
	}
	cout << w << endl;
	int now = x;
	while (now != 1) {
		l += 2;
		now = fa[now];
	}
	now = y;
	while (now != 1) {
		l += 1;
		now = fa[now];
	}
	cout << l;
	return 0;
}
2025/7/28 14:57
加载中...