#include<iostream> #include<vector> using namespace std; int N; int t; vector<int> v[1000000]; int dfs(int x){ int size = v[x].size(); int ans = 0; for(int i = 0; i < size; i++){ ans = max(ans, dfs(v[x][i])); //对于每个父节点,它的最大高度应为其子节点的最大高度加上子节点的总数 } return size + ans; } int main(){ cin>>N; for(int i = 2; i <= N; i++){ cin>>t; v[t].push_back(i); } cout<<dfs(1); return 0; }
0.0分
4 人评分
C语言程序设计教程(第三版)课后习题6.3 (C语言代码)浏览:509 |
C语言程序设计教程(第三版)课后习题1.5 (C语言代码)浏览:577 |
C语言程序设计教程(第三版)课后习题6.9 (C语言代码)浏览:993 |
淘淘的名单 (C语言代码)浏览:1088 |
printf基础练习2 (C语言代码)浏览:746 |
C语言程序设计教程(第三版)课后习题5.4 (C语言代码)浏览:780 |
C语言程序设计教程(第三版)课后习题9.6 (C语言代码)浏览:371 |
字符逆序 (C语言代码)浏览:609 |
有关字符,字符串的输入输出函数说明浏览:477 |
C语言程序设计教程(第三版)课后习题12.1 (C语言代码)浏览:641 |