蓝桥杯 算法训练 结点选择

题目

问题描述
有一棵 n 个节点的树,树上每个节点都有一个正整数权值。如果一个点被选择了,那么在树上和它相邻的点都不能被选择。求选出的点的权值和最大是多少?

输入格式
第一行包含一个整数 n 。
接下来的一行包含 n 个正整数,第 i 个正整数代表点 i 的权值。
接下来一共 n-1 行,每行描述树上的一条边。

输出格式
输出一个整数,代表选出的点的权值和的最大值。

样例输入
5
1 2 3 4 5
1 2
1 3
2 4
2 5

样例输出
12

样例说明
选择3、4、5号点,权值和为 3+4+5 = 12 。

数据规模与约定
对于20%的数据, n <= 20。
对于50%的数据, n <= 1000。
对于100%的数据, n <= 100000。
权值均为不超过1000的正整数。

题目分析

首先,回顾一下 数据结构中 “节点”的定义:
是数据结构中,用来描述“树”型结构的名词。这种结构像一根倒着的树。每片树叶都长在一个结点上,这个结点就叫做这个叶子的父结点,这个叶子叫做父结点的子结点,也叫这棵树的叶结点,它再没有子结点了。

经过对问题的分析,发现,需要用到的思想如下:
1、动态规划的策略进行求解。因为符合 每 个 阶 段 的 决 策 , 做 出 的 是 一 组 局 部 的 决 策 结 果 , 而 每 个 阶 段 都 使 问 题 规 模 变 小 , 且 更 接 近 最 优 解 \color{green}{每个阶段的决策,做出的是一组局部的决策结果,而每个阶段都使问题规模变小,且更接近最优解} 使


2、构造树----这是一个树形结构,但不是二叉树(题目中的情况表明可以是多叉数),所以 可 以 理 解 为 一 个 图 , 那 么 对 它 的 信 息 进 行 存 储 应 该 用 图 的 存 储

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值