玄关求调
  • 板块学术版
  • 楼主xuhaosheng
  • 当前回复2
  • 已保存回复2
  • 发布时间2024/7/24 11:29
  • 上次更新2024/7/24 12:45:54
查看原帖
玄关求调
1283774
xuhaosheng楼主2024/7/24 11:29
#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)
{
	if(x[z]>0)
	{
		s(x[z],z1+1);
	}
	if(y[z]>0)
	{
		s(y[z],z1+1);
	}
	a[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;
	sort(a+1,a+n+1);
	cout<<a[n]<<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*2+t1;
	return 0;
}

题目

2024/7/24 11:29
加载中...