73求助
查看原帖
73求助
678447
CSPAK_Zhangxiuqi0011楼主2023/9/8 17:37
#include<bits/stdc++.h>
using namespace std;
int u,v;
struct son {
	int father_qz,left_son_cnrh,right_son_lsh;
} a[105];
int num[105],walk;
int ans; 
void front_tree_walk(int root,int death){
	ans = max(ans,death);
	num[death]++;
	if(root == u){
		walk = walk+(death-1)*2;
	}else if(root == v){
		walk = walk+death-1;
	}
	if(a[root].left_son_cnrh){
		front_tree_walk(a[root].left_son_cnrh,death+1);
	}
	if(a[root].right_son_lsh){
		front_tree_walk(a[root].right_son_lsh,death+1);
	}
}
int main() {
	int n;
	cin>>n;
	for(int i = 1; i<n; i++) {
		int u,v;
		cin>>u>>v;
		a[v].father_qz = u;
		if(!a[u].left_son_cnrh){
			a[u].left_son_cnrh = v;
		}else{
			a[u].right_son_lsh = v;
		}
	}
	cin>>u>>v;
	front_tree_walk(1,1);
	int b;
	b = 0;
	for(int i = 1;i<=ans;i++){
		b = max(b,num[i]);
	}
	cout<<ans<<"\n"<<b<<"\n"<<walk;
	return 0;
}

不知道哪里错了,提交记录
大佬求调!

(请忽略这奇奇怪怪的变量名)

谢谢!

2023/9/8 17:37
加载中...