dpi]代表以i为根节点的最高高度;
c[i]:为i的孩子数;
f[i]:为i的父亲
注意事项:
参考代码:
#include<bits/stdc++.h> using namespace std; long long N; int f[1000000]; int c[1000000]; int dp[1000000]; int main(){ cin>>N; for(long long i = 2; i <= N; i++){ cin>>f[i]; } long long size = N; for(long long i = 1; i <= N; i++){ if(f[i]){ c[f[i]]++; } } for(long long i = N; i >= 1; i--){ dp[f[i]] = max(dp[f[i]], dp[i] + c[f[i]]); } cout<<dp[1]; return 0; }
0.0分
3 人评分