题解 | #二叉树中的最大路径和#

二叉树中的最大路径和

http://www.nowcoder.com/practice/8fda1d22554f4824b0ef9c26f35e54dd

#include<iostream>
#include<vector>
#include<cstring>
#include<algorithm>
using namespace std;
int node[100001],dp[100001];
vector<int> vec[100001];
void dfs(int i){
    for(auto it : vec[i]){
        dfs(it);
        dp[i] = max(dp[i],dp[i] + dp[it]);
    }
}
int main()
{
    ios::sync_with_stdio(false);
    cin.tie(0);
    int n,ans = -1001;
    cin >> n;
    for(int i = 1;i <= n;++i){
        cin >> node[i];
        dp[i] = node[i];
    }
    for(int i = 1,f;i <= n;++i){
        cin >> f;
        vec[f].push_back(i);
    }
    dfs(0);
    for(int i = 1;i <= n;++i)
        ans = max(ans,dp[i]);
    cout << ans;
}
全部评论

相关推荐

合适才能收到offe...:招聘上写这些态度傲慢的就别继续招呼了,你会发现hr和面试官挺神的,本来求职艰难就可能影响一些心态了,你去这种公司面试的话,整个心态会炸的。
点赞 评论 收藏
分享
开发转测第二人:没实习的话,两个项目吧,八股也要准备一下,这个时间点有点小晚了
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务