36pts代码求调
查看原帖
36pts代码求调
1043012
Furukawa_Nagisa楼主2024/7/6 15:48

按照一篇题解思路大致复刻的

#include<bits/stdc++.h>
using namespace std;
int n,l[1000003],r[1000003],v[1000003],maxn=-100;
void dfs(int x,int y,int a){
	if(x==-1 && y!=-1) return;
	if(y==-1 && x!=-1) return;
	if(a>maxn) maxn=a;
	if(a==n) return;
	if(v[l[x]]==v[r[y]]) dfs(l[x],r[y],a+2);
	if(v[r[x]]==v[l[y]]) dfs(r[x],l[y],a+2);
} 
int main(){
	cin>>n;
	for(int i=1;i<=n;i++) cin>>v[i];
	for(int i=1;i<=n;i++) cin>>l[i]>>r[i];
	dfs(l[1],r[1],3);
	if(maxn>0) cout<<maxn;
	else cout<<1;
	return 0;
}

码风比较丑 求调悬关orz

2024/7/6 15:48
加载中...