社区讨论

玄关46分RE

P3884[JLOI2009] 二叉树问题参与者 4已保存回复 5

讨论操作

快速查看讨论及其快照的属性,并进行相关操作。

当前回复
5 条
当前快照
1 份
快照标识符
@mhju2o5i
此快照首次捕获于
2025/11/04 08:31
4 个月前
此快照最后确认于
2025/11/04 08:31
4 个月前
查看原帖
为什么RE了?
CPP
#include <bits/stdc++.h>
using namespace std;

int n, X, Y;
vector <int> so[1010];
int fa[1010];
int weigh[1010], deep = -1, wei;
int book[1010];

void bfs () {
	queue <pair <int, int> > q;
	q.push(make_pair(1, 1));
	while (q.size()) {
		pair <int, int> t = q.front();
		deep = max (deep, t.second);
		wei = max (wei, ++ weigh[t.second]);
		q.pop();
		for (int i = 0; i < so[t.first].size(); i ++) q.push (make_pair(so[t.first][i], t.second + 1));
	}
	cout << deep << endl << wei << endl;
}

void dfs (int x, int s) {
	if (book[x]) return ;
	if (x == Y) {
		cout << s << endl;
		exit(0);
	}
	book[x] = 1;
	if (fa[x]) dfs (fa[x], s + 2);
	if (so[x][0]) dfs (so[x][0], s + 1);
	if (so[x][1]) dfs (so[x][1], s + 1);
}

int main() {
	ios :: sync_with_stdio();
	cin.tie(0);
	cout.tie(0);
	
	//freopen (".in", "r", stdin);
	//freopen (".out", "w", stdout);
	
	cin >> n;
	for (int i = 1; i < n; i ++) {
		int u, v;
		cin >> u >> v;
		so[u].push_back(v);
		fa[v] = u;
	}
	
	cin >> X >> Y;
	bfs ();
	dfs (X, 0);
	
	return 0;
}

回复

5 条回复,欢迎继续交流。

正在加载回复...