← 查看本卷题目
组合题6 个小题
已作答 0 / 6
#include <iostream>using namespace std;int n, fa[100007], f[100007], 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;}

说明:输入第一行为结点个数 nn,第二行为 n−1n - 1 个整数,依次表示结点 2—nn 的父结点编号,满足 2≤n≤100002 \le n \le 10000 且 1≤fa[i]<i1 \le fa[i] < i,根结点为 1。

第 32 题单选题原卷 3 分

当 n=7n=7,fa[2]∼fa[7]=1,1,2,2,3,3fa[2] \sim fa[7]={1, 1, 2, 2, 3, 3} 时,输出为( )。

填写答案