数据是不是太水了
查看原帖
数据是不是太水了
1007041
zhaozichu楼主2025/1/13 20:55
#include<bits/stdc++.h>
using namespace std;
int n,a[100005],ans;
vector<int>v[100005]; 
void dfs(int d,int s,int f)
{
	ans=max(ans,s);
//	cout<<d<<"->";
	for(int i=0;i<v[d].size();i++)
	{
		if(a[v[d][i]]!=a[d]&&f!=v[d][i])
		{
			dfs(v[d][i],s+1,d);
		}
	}
}
int main()
{
	cin>>n;
	for(int i=1;i<=n;i++)cin>>a[i]; 
	for(int i=1;i<=n-1;i++)
	{
		int x,y;
		cin>>x>>y;
		v[x].push_back(y);
		v[y].push_back(x);
	}
	for(int i=1;i<=n;i++)
	{
		dfs(i,1,0);
//		cout<<endl;
	}
	cout<<ans;
 	return 0;
 }


我这样写都AC了

2025/1/13 20:55
加载中...