求助!玄学!
查看原帖
求助!玄学!
821849
TFHS_arsc楼主2024/3/30 14:58

Rt,样例都对,下了个测试点也对

我是蒟蒻小草,老师摇摇头直说改不好,求助大佬为什么过不了,请大家帮帮我好不好 QwQQwQ

#include<iostream>
using namespace std;
const int N=1000005;
int n;
int a[N];
int L[N],R[N];
int siz[N];
int ans=0;
void dfs(int u){
	if(u==-1) return;
	siz[u]=1;
	dfs(L[u]);
	dfs(R[u]);
	siz[u]+=siz[L[u]]+siz[R[u]];
}
bool check(int l,int r){
	if(l==-1&&r==-1) return true;
	if(l==-1||r==-1) return false;
	if(a[l]==a[r]&&check(L[l],R[r])&&check(R[l],L[r])) return true;
}
int main(){
	
	cin>>n;
	for(int i=1;i<=n;i++) cin>>a[i];
	for(int i=1;i<=n;i++){
		cin>>L[i]>>R[i];
	}
	dfs(1);
	for(int i=1;i<=n;i++){
		if(check(L[i],R[i])) ans=max(ans,siz[i]);
	}
	cout<<ans;
	
	return 0;
}
2024/3/30 14:58
加载中...