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;
}

 

posted @ 2018-10-06 16:44  Melted_czj  阅读(101)  评论(0编辑  收藏  举报
body { background-color:whitesmoke; } // 修改背景颜色为半透明 #home,#sideBarMain>div,#blog-sidecolumn>div>div,.catListView{ background-color:rgba(255,255,255,0); } // 修改其他边框的颜色