求
查看原帖
求
1283774
xuhaosheng楼主2024/7/24 11:08
#include<bits/stdc++.h>
using namespace std;
int x[10005],y[10005],a[10005],b[10005],r1=0,r2=0,t,t1;
void s(int z,int z1)
{
	a[z]=z1;
	r1=max(r1,z1);
	if(x[z]>0)
	{
		s(x[z],z1+1);
	}
	a[z]=z1;
	r1=max(r1,z1);
	if(y[z]>0)
	{
		s(y[z],z1+1);
	}
	a[z]=z1;
	r1=max(r1,z1);
}
int main()
{
	int n,r,l,x1,y1;
	cin>>n;
	for(int i=1;i<=n-1;i++)
	{
		cin>>r>>l;
		if(x[r]==0) x[r]=l;
		else y[r]=l;
	}
	cin>>x1>>y1; 
	s(1,1);
	cout<<r1<<endl;
	for(int i=1;i<=n-1;i++)
	{
		b[a[i]]++;
		r2=max(r2,b[a[i]]);
	}
	cout<<r2<<endl;
	for(int i=1;i<=n-1;i++)
	{
		for(int j=1;j<=n-1;j++)
		{
			if(x[j]==x1)
			{
				t++;
				x1=j;
				break;
			}
			if(y[j]==x1)
			{
				t++;
				x1=j;
				break;
			}
		}
		if(x1==1) break;
	}
	for(int i=1;i<=n-1;i++)
	{
		for(int j=1;j<=n-1;j++)
		{
			if(x[j]==y1)
			{
				t1++;
				y1=j;
				break;
			}
			if(y[j]==y1)
			{
				t1++;
				y1=j;
				break;
			}
		}
		if(y1==1) break;
	}
	cout<<t<<" "<<t1;
	return 0;
}
2024/7/24 11:08
加载中...