思路:
其实就是每个人都有一个或者没有父亲节点,我们要让同深度的人组成一个队伍就可以。 也就是找树的最大深度。
AC:
#include <iostream>
#include <algorithm>
#include <cmath>
using namespace std;
const int maxn = 10000;
int fa[maxn];
int temp = 0;
void dfs(int i)
{
if (i == -1)
return ;
else
{
temp++;
dfs(fa[i]);
}
}
int main()
{
int n,sum = 0;
cin >> n;
for (int i=1;i<=n;i++)
cin >> fa[i];
for (int i=1;i<=n;i++)
{
temp = 0;
dfs(i);
sum = max(sum,temp);
}
cout << sum << endl;
return 0;
}