[蓝桥杯2015初赛]生命之树-求树的最大子树权值和

题目描述
在X森林里,上帝创建了生命之树。
他给每棵树的每个节点(叶子也称为一个节点)上,都标了一个整数,代表这个点的和谐值。
上帝要在这棵树内选出一个非空节点集S,使得对于S中的任意两个点a,b,都存在一个点列 {a, v1, v2, …, vk, b}
使得这个点列中的每个点都是S里面的元素,且序列中相邻两个点间有一条边相连。
在这个前提下,上帝要使得S中的点所对应的整数的和尽量大。
这个最大的和就是上帝给生命之树的评分。
经过atm的努力,他已经知道了上帝给每棵树上每个节点上的整数。
但是由于 atm 不擅长计算,他不知道怎样有效的求评分。
他需要你为他写一个程序来计算一棵树的分数。

输入
第一行一个整数 n 表示这棵树有 n 个节点。(0<n<=10^5)
第二行 n 个整数,依次表示每个节点的评分。(每个节点的评分不超过10^6)
接下来 n-1 行,每行 2 个整数 u, v,表示存在一条 u 到 v 的边。
由于这是一棵树,所以是不存在环的。
输出
输出一行一个数,表示上帝给这棵树的分数。
样例输入
5
1 -2 -3 4 5
4 2
3 1
1 2
2 5
样例输出
8

解题思路:
https://blog.csdn.net/CrazyMooo/article/details/109080562

代码如下:

#include <iostream>
#include <vector>
using namespace std;
typedef long long LL;
const int N = 100010;
LL w[N];
LL ans;//开LL,不然会爆
vector<LL>T[N];void dfs(LL root, LL fa) {for (int i = 0; i < T[root].size(); i++) {int child = T[root][i];if (child == fa)continue;dfs(child, root);if (w[child] > 0)w[root] += w[child];}ans = max(ans, w[root]);
}int main() {int n;cin >> n;for (int i = 1; i <= n; i++) {cin >> w[i];}for (int i = 1; i <= n - 1; i++) {int a, b;cin >> a >> b;T[a].push_back(b);T[b].push_back(a);}dfs(1, -1);cout << ans << endl;return 0;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/311613.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

在.NET Core中使用MachineKey

在.NET Core中使用MachineKey在上篇文章中&#xff0c;我介绍了 Cookie是基于 MachineKey生成的&#xff0c; MachineKey决定了 Cookie生成的算法和密钥&#xff0c;并如果使用多台服务器做负载均衡时&#xff0c;必须指定一致的 MachineKey。但在 .NETCore中&#xff0c;官方似…

cg word List 1

cg word List 1 如果存在什么问题&#xff0c;欢迎批评指正&#xff01;谢谢!

[蓝桥杯2016初赛]剪邮票-dfs+next_permutation(好题)

题目描述 如下图, 有12张连在一起的12生肖的邮票。现在你要从中剪下5张来&#xff0c;要求必须是连着的。&#xff08;仅仅连接一个角不算相连&#xff09; 比如&#xff0c;下面两张图中&#xff0c;粉红色所示部分就是合格的剪取。 请你计算&#xff0c;一共有多少种不同…

cg word List2

cg word List 2 如果存在什么问题&#xff0c;欢迎批评指正&#xff01;谢谢&#xff01;

如何扩展分布式日志组件(Exceptionless)的日志通知?

作者&#xff1a;justmine头条号&#xff1a;大数据与云原生微信公众号&#xff1a;大数据与云原生创作不易&#xff0c;在满足创作共用版权协议的基础上可以转载&#xff0c;但请以超链接形式注明出处。为了方便阅读&#xff0c;微信公众号已按分类排版&#xff0c;后续的文章…

hadoop hive集群_基于伪分布式Hadoop搭建Hive平台详细教程

一、搭建环境的前提条件环境&#xff1a;Linux系统Hadoop-2.6.0MySQL 5.6apache-hive-2.3.7这里的环境不一定需要和我一样&#xff0c;基本版本差不多都ok的&#xff0c;所需安装包和压缩包自行下载即可。但是注意hive和hadoop都是2.x系列版本的。这里提供一个我下载的hive版本…

[蓝桥杯2017初赛]九宫幻方-数论+next_permutation枚举

题目描述 小明最近在教邻居家的小朋友小学奥数&#xff0c;而最近正好讲述到了三阶幻方这个部分。 三阶幻方指的是将1~9不重复的填入一个33的矩阵当中&#xff0c;使得每一行、每一列和每一条对角线的和都是相同的。 三阶幻方又被称作九宫格&#xff0c;在小学奥数里有一句非常…

cg word List 3

cg word List 3 如果存在什么问题&#xff0c;欢迎批评指正&#xff01;谢谢&#xff01;

.NET Core开发实战(第7课:用Autofac增强容器能力)--学习笔记(上)

07 | 用Autofac增强容器能力&#xff1a;引入面向切面编程&#xff08;AOP&#xff09;的能力这一节讲解使用第三方框架来扩展依赖注入容器什么情况下需要我们引入第三方容器组件&#xff1f;大部分情况下&#xff0c;默认的容器组件足够使用当需要一些非常特殊的场景如下&…

sql 对groupby 后的数据limit_SQL(三)——汇总分析

1. 汇总分析函数的3个功能&#xff1a;①功能&#xff1b;②输入&#xff08;参数&#xff09;&#xff1b;③输出&#xff08;返回值&#xff09;查询课程编号为“0002”的总成绩&#xff1a;查询选了课程的学生人数&#xff1a;2.分组sql分组:group bygroup by 实现数据分组&…

cg word List4

cg word List4 如果存在什么问题&#xff0c;欢迎批评指正&#xff01;谢谢&#xff01;

通过 Serverless 加速 Blazor WebAssembly

Blazor ❤ Serverless我正在开发 Ant Design 的 Blazor 版本&#xff0c;预览页面部署在 Github Pages 上&#xff0c;但是加载速度很不理想&#xff0c;往往需要 1 分钟多钟才完成。项目地址&#xff1a;https://github.com/ElderJames/ant-design-blazor[1] 求 Star。当寻求解…

eclipse中tomcat启动不了_Eclipse怎样与Tomcat集成

1 打开eclipse2 打开Window -> Show View -> Servers3 点击No servers are available.Click this link to create a new server...4 选择 Apache -> Tomcat v9.0 Server&#xff0c;tomcat的版本可以根据本机安装的tomcat版本选择&#xff0c;然后点击Next5 Name不需要…

树的存储结构-双亲表示法

特点:找双亲容易&#xff0c;找孩子难 代码如下&#xff1a; #include <iostream> using namespace std; typedef char ElemType; #define MAX_Tree_size 100 typedef struct PTNode {ElemType data;int parent;//双亲位置域 }PTNode;typedef struct {PTNode nodes[MA…

cg word List5

## cg word List5 如果存在什么问题&#xff0c;欢迎批评指正&#xff01;谢谢&#xff01;

x509trustmanager怎么验证证书_GeoTrust通配符证书和多域名SSL证书对比评测

GeoTrust SSL证书类型很丰富&#xff0c;能够满足多样的需求&#xff0c;而GeoTrust通配符证书和多域名SSL证书都是支持多个域名的SSL证书&#xff0c;这时候就有网友问了&#xff0c;GeoTrust通配符证书和多域名SSL证书选择哪个好呢&#xff1f;接下来安信证书就为大家做个详细…

树的存储结构-孩子链表

特点:找孩子容易&#xff0c;找双亲难 代码如下&#xff1a; #include <iostream> using namespace std; typedef char ElemType; #define MAX_tree_size //孩子结构 typedef struct CTNode {int child;struct CTNode *next; }*ChildPtr; //双亲结点结构 typedef stru…

【视频教程】使用 ASP.NET Core 3.x 构建 RESTful Web API 已完结

使用 ASP.NET Core 3.x 构建 RESTful Web API 的视频教程已经完结&#xff0c;共50讲&#xff0c;约10.5小时。B站可看&#xff0c;点击原文链接。度娘盘可下载完整视频&#xff1a;https://pan.baidu.com/s/1VPE3bkAVQI_RO3tDrxod4w提取码: hsmj源码以及PPT&#xff1a;https:…

深度学习之VGG和ResNet从公式推导到代码实现

一、开启深度学习相关模型公式推导和代码实现模式 二、深度学习之VGG和ResNet从公式推导到代码实现 点击下面链接查看原文 VGG和ResNet 如果存在什么问题&#xff0c;欢迎批评指正&#xff01;谢谢&#xff01;&#xff01;

pythonwhile循环怎么修改数据类型_python基础--数据类型循环

1、双引号单引号&#xff1a;通常一样&#xff0c;变量里面有双引号外面用单引号&#xff0c;反之通用&#xff0c;如果变量里面单双引号都有&#xff0c;用三引号变量 Python 使用反斜杠 \ 转义特殊字符&#xff0c;如果你不想让反斜杠发生转义&#xff0c;可以在字符串前面添…