当 n = 5,fa[2] ~ fa[5] = {1, 2, 3, 4} 时,程序输出 4。( )
#include <iostream>
using namespace std;
int n, fa[1000007], f[1000007], ans;
int main() {
cin >> n;
for (int i = 2; i <= n; ++i) {
cin >> fa[i];
}
for (int i = n; i >= 2; --i) {
if (f[fa[i]] + f[i] + 1 > ans) {
ans = f[fa[i]] + f[i] + 1;
}
if (f[i] + 1 > f[fa[i]]) {
f[fa[i]] = f[i] + 1;
}
}
cout << ans << endl;
return 0;
}
正确
错误