求助,全RE
查看原帖
求助,全RE
1068756
George_qwe楼主2024/3/7 19:26

我太菜了,第一次出现RE。

有大佬看看find()函数的问题吗?

大概是吧

#include<bits/stdc++.h>
typedef long long ll;
using namespace std;
const int M=1e6+5;
int n,cnt,ans=0;
//ll size[M],head[M];
int father[M];//父亲节点 
bool leaf[M];

inline int read()
{
    int x=0,k=1; char c=getchar();
    while(c<'0'||c>'9'){if(c=='-')k=-1;c=getchar();}
    while(c>='0'&&c<='9')x=(x<<3)+(x<<1)+(c^48),c=getchar();
    return x*k;
}
/* 
void add(int x,int y,int z){
	cnt++;
	node[cnt].to=y;
	node[cnt].next=head[x];
	node[cnt].w=z;
	head[x]=cnt;
}
*/
int find(int x,int cnt){
	if(x==1) return cnt;
	else{
		find(father[x],cnt+1);
	}
}
int main(){
	cin>>n;
	for(int i=1;i<=n;i++)
	{
		int x,y;
		scanf("%d%d",&x,&y);
		father[x]=i;father[y]=i;
		if(x==0 && y==0){
			leaf[i]=1;	
		}
	}
	for(int i=1;i<=n;i++)
	{
		int qwe;
		if(leaf[i]){
			qwe=find(father[i],2);
			ans=max(ans,qwe);
		}
	}
	cout<<ans;
	return 0;
}
2024/3/7 19:26
加载中...