求二叉树的最长路径_某完全二叉树按层次输出,从左到右

求二叉树的最长路径_某完全二叉树按层次输出,从左到右Ural 大学有 N 名职员,编号为 1∼N。他们的关系就像一棵以校长为根的树,父节点就是子节点的直接上司。每个职员有一个快乐指数,用整数 Hi 给出,其中 1≤i≤N。现在要召开一场周年庆宴会,不过,没有职员愿意和直接上司一起参会。在满足这个条件的前提下,主办方希望邀请一部分职员参会,使得所有参会职员的快乐指数总和最大,求这个最大值。输入格式第一行一个整数 N。接下来 N 行,第 i 行表示 i 号职员的快乐指数 Hi。接下来 N−1 行,每行输入一对整数 L,K,表示 K 是 L 的直接

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

Ural 大学有 N 名职员,编号为 1∼N。

他们的关系就像一棵以校长为根的树,父节点就是子节点的直接上司。

每个职员有一个快乐指数,用整数 Hi 给出,其中 1≤i≤N。

现在要召开一场周年庆宴会,不过,没有职员愿意和直接上司一起参会。

在满足这个条件的前提下,主办方希望邀请一部分职员参会,使得所有参会职员的快乐指数总和最大,求这个最大值。

输入格式
第一行一个整数 N。

接下来 N 行,第 i 行表示 i 号职员的快乐指数 Hi。

接下来 N−1 行,每行输入一对整数 L,K,表示 K 是 L 的直接上司。

输出格式
输出最大的快乐指数。

数据范围
1≤N≤6000,
−128≤Hi≤127

输入样例:
7
1
1
1
1
1
1
1
1 3
2 3
6 4
7 4
4 5
3 5
输出样例:
5

题解
f[i][0]:节点0没有选,树的最大值
f[i][1]:节点0选了,树的最大值

#include<bits/stdc++.h>
using namespace std;
const int N = 6e3 + 10;
int f[N][2],a[N],in[N];
struct Edge{ 
   
    int v,next;
}edge[N];
int head[N],cnt;
void add(int u,int v){ 
   
    edge[cnt].v = v;
    edge[cnt].next = head[u];
    head[u] = cnt++;
}
int dfs(int u){ 
   
    for(int i = head[u];~i;i = edge[i].next){ 
   
        int v = edge[i].v;
        dfs(v);
        f[u][0] += max(f[v][1],f[v][0]);
        f[u][1] += f[v][0];
    }
    f[u][1] += a[u];
}
int main(){ 
   
    int n,root = -1;
    cin>>n;
    memset(head,-1,sizeof head);
    int x,y;
    for(int i = 1;i <= n;i ++)cin>>a[i];
    for(int i = 0;i < n - 1;i ++){ 
   
        cin>>x>>y;
        add(y,x);
        in[x] ++;
    }
    for(int i = 1;i <= n;i ++)
        if(in[i] == 0)root = i;
    dfs(root);
    cout<<max(f[root][0],f[root][1]);
    return 0;
}
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/168674.html原文链接:https://javaforall.net

(0)
上一篇 2022年8月8日 下午6:00
下一篇 2022年8月8日 下午6:00


相关推荐

  • 如何通过移动广告平台实现手游推广

    如何通过移动广告平台实现手游推广移动广告与手游有个相似点 都是依靠移动设备作为基础而兴起的 在移动互联网高速发展的阶段 利用移动广告来实现手游的推广是行业十分重要的一环 就当前手游行业状况来看 那个单纯靠砸钱买用户的时代已经过去 摆在大家面前的将是一个更加分散 更加多元和更加个性化的用户群体和市场 因此 手游如何使用移动广告平台来精细化推广的问题值得广大推广者思考 首先 认识一下移动广告平台 移动广告平台和互联网的广告联

    2026年3月20日
    2
  • ideaspringboot启动_idea中java代码无法运行

    ideaspringboot启动_idea中java代码无法运行idea解决Command line is too long. Shorten command line for ServiceStarter or also for Application报错1.在IDEA里找到”.idea===>workspace.xml”2.找到,在里面添加即可

    2022年8月19日
    6
  • RabbitVCS安装

    RabbitVCS安装给大家推荐使用RabbitVCS,类似与TortoiseSVN。下面具体安装RabbitVCS的方法步骤如下:第一步:sudoadd-apt-repositoryppa:rabbitvcs/ppa第二步:根据第一步的情况来是否跳过该步骤,如果第一步出现导入key,那第二步可以跳过,否则需要导入keysudoapt-keyadv–keyserverkeyserver.u

    2022年7月18日
    35
  • 梳理一下各大平台使用的sample rate convert算法

    梳理一下各大平台使用的sample rate convert算法梳理一下各大平台使用的resample算法

    2022年10月16日
    5
  • Idea激活码最新教程2024.2.1版本,永久有效激活码,亲测可用,记得收藏

    Idea激活码最新教程2024.2.1版本,永久有效激活码,亲测可用,记得收藏Idea 激活码教程永久有效 2024 2 1 激活码教程 Windows 版永久激活 持续更新 Idea 激活码 2024 2 1 成功激活

    2025年5月28日
    10
  • bs与cs架构的区别_cs架构嵌入BS

    bs与cs架构的区别_cs架构嵌入BSC/S架构:即Client/Server架构,即客户端/服务器架构。是大家熟知的软件系统体系结构,通过将任务合理分配到Client端和Server端,降低了系统的通讯开销,需要安装客户端才可进行管理操作。客户端和服务器端的程序不同,用户的程序主要在客户端,服务器端主要提供数据管理、数据共享、数据及系统维护和并发控制等,客户端程序主要完成用户的具体的业务。开发比较容易,操作简便,但应用程序的升级和客…

    2022年10月10日
    4

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号