求助
查看原帖
求助
1127767
chenjiayicxq821411楼主2024/5/7 22:41
#include<bits/stdc++.h>
using namespace std;
#define ll long long
struct qq{
	int l=-1,r=-1,mid=-1;
} MAP[100000];
int SWAP(int a,int b){
	if((a==-1&&b==-1)||a==b) return 1;
	if(a==-1||b==-1||a!=b) return 0;
	return (SWAP(MAP[a].l,MAP[b].r)&&SWAP(MAP[a].r,MAP[b].l));
}
int qh(int x){
	if(x==-1) return 0;
	return qh(MAP[x].l+MAP[x].r)+1;
}
int n,h;
int main()
{
	ios::sync_with_stdio(false);
	cin.tie(0);
	cout.tie(0);
	cin>>n;
	for(int i=1;i<=n;i++) cin>>MAP[i].mid;
	for(int i=1;i<=n;i++) cin>>MAP[i].l>>MAP[i].r;
	for(int i=1;i<=n;i++) if(SWAP(i,i)) h=max(h,qh(i));
	cout<<h;
	return 0;
}

求调

2024/5/7 22:41
加载中...