10月6日 聚会

时间:2020-11-29 14:33:33

题目

10月6日 聚会

 

 

   分析

    就是并查集然后求一棵树的深度。。。

 

 

  代码

 

 

#include<bits/stdc++.h>
using namespace std;
int n,a[2005],f[2005],ans,k[2005];
int dfs(int x)
{
    if(k[x]>0) return k[x];
    if(f[x]==0)
    {
      k[x]=1;
      return k[x];
    }
    k[x]=dfs(f[x])+1;
    return k[x];
}
int main()
{
    cin>>n;
    for(int i=1;i<=n;i++)
     cin>>a[i];
    for(int i=1;i<=n;i++)
    {
      if(a[i]!=-1)
       f[i]=a[i];
    }
    for(int i=1;i<=n;i++)
     ans=max(ans,dfs(i));
    cout<<ans;
    return 0;
}