#WA1求大佬看看,必关
查看原帖
#WA1求大佬看看,必关
1419017
z1443888087楼主2024/12/16 17:30

使用10 3 8 7 10 7测出来的结果都正确

#include<iostream>
#include<algorithm>
using namespace std;
struct team{
	int l,r,f,d,w,p;
}t[10005];
int sum[105];
int maxd=1;
int lca(int x,int y){
	t[x].p=1;
	while(t[x].f!=0){
		x=t[x].f;
		t[x].p=1;
	}
	while(t[y].p!=1){
		y=t[y].f;
	}
	return y;
}
void dfs(int x,int cnt){
	if(x==0)return ;
	if(cnt>maxd)maxd=cnt;
	dfs(t[x].l,cnt+1);
	dfs(t[x].r,cnt+1);
}
int main(){
	int n;
	cin>>n;
	t[1].f=0;
	t[1].d=1;
	for(int i=1;i<n;i++){
		int u,v;
		cin>>u>>v;
		if(t[u].l==0){
			t[u].l=v;
		}
		else t[u].r=v;
		t[v].f=u;
		t[v].d=t[u].d+1;
	}
	dfs(1,1);
	int x,y,num=0,numl=0;
	cin>>x>>y;
	int ta=lca(x,y);
	while(x!=ta){
		x=t[x].f;
		num++;
	}
	num*=2;
	int count=0;
	while(y!=ta){
		y=t[y].f;
		numl++;
	}
	for(int i=1;i<=n;i++){
		sum[t[i].d]++;
	}
	sort(sum+1,sum+100+1);
	cout<<maxd<<endl<<sum[100]<<endl<<num+numl;
	return 0;
} 
2024/12/16 17:30
加载中...