`

南阳理工OJ 697 The Weight of Tree 树上的最大块

    博客分类:
 
阅读更多

连接:http://acm.nyist.net/JudgeOnline/problem.php?pid=697

 

The Weight of Tree

时间限制:3000 ms  |  内存限制:65535 KB
难度:4
 
描述
456 has a tree of n nodes, each node is assigned with an integer number. Now 456 wants to select a subtree, such that the sum of all integers on the nodes of the subtree is maxmized. Can you help him? 
 
输入
On the first line of the input is an integer T, and then T cases follows. Each case begins with a positive integer n(1 <= n <= 10^5), then n numbers Wi(-1000 <= Wi <= 1000),Wi for the number on the ith node. Then n - 1 lines follows, each line contains two numbers a, b(1 <= a, b <= n)indicate that there is a edge between node a and b.
输出
For each test case, output one integer on a line, the maximized sum can be achieved by selecting a subtree. 
样例输入
3
1
5
2
5 -5
1 2
5
-2 -3 7 -1 4
1 2
2 3
3 4
2 5
样例输出
5
5
8

 

#include<cstdio>
#include<cstring>
#include<vector>
#define inf 1<<30
using namespace std;
vector<int>link[100010];
bool mask[100010];
int w[100010];
int maxn,n;
int dfs(int a)
{
       int term,res=0;
       mask[a]=1;
       for(int i=0;i<link[a].size();i++)if(mask[link[a][i]]==0)
       {
              term=dfs(link[a][i]);
              if(term<0)continue;
              res+=term;
       }
       if(res+w[a]>maxn)maxn=res+w[a];
       return res+w[a];
}
int main()
{
     //  freopen("in.txt","r",stdin);
	int T;
	scanf("%d",&T);
	while(T--)
	{
	       memset(mask,0,sizeof(mask));
	       scanf("%d",&n);
	       for(int i=1;i<=n;i++)link[i].clear();
	       for(int i=1;i<=n;i++)scanf("%d",&w[i]);
	       for(int i=1;i<n;i++)
	       {
	              int a,b;
	              scanf("%d%d",&a,&b);
	              link[a].push_back(b);
	              link[b].push_back(a);
	       }
	       maxn=-inf;
	       dfs(1);
	       printf("%d\n",maxn);
	}
	return 0;
}

 

 

 

 

 

 

 

 

 

1
4
分享到:
评论

相关推荐

    南阳理工oj离线题库

    南阳理工oj离线题库是为编程爱好者和学习者提供的一种资源,主要用于练习和提高编程技能。这个离线题库通常包含多种类型的编程题目,涵盖了数据结构、算法、计算机科学基础等多个方面。在这个环境中,用户可以不受...

    南阳理工学院OJ_个人AC代码包(Java提交)

    【南阳理工学院OJ_个人AC代码包(Java提交)】是针对Java初学者的一份宝贵资源,它包含了参与ACM国际大学生程序设计竞赛(ICPC)时在南阳理工学院在线评测系统(OJ)上获得正确答案的代码实例。这些代码展示了如何用...

    南阳理工学院OJ第1版解题报告V1.0.pdf

    ### 南阳理工学院OJ第1版解题报告概览 #### 1. A+B Problem 虽然解题思路在报告中被省略,但我们可以推测这是一个基础的数学加法问题,涉及到数字输入与基本算术操作。此类题目旨在测试初学者对编程语言基本输入...

    南阳理工oj stl练习ac代码

    STL(Standard Template Library,标准模板库)是C++编程语言中的一个重要组成部分,它提供了一系列...通过南阳理工OJ上的AC代码,我们可以看到这些理论知识在实际编程中的具体应用,从而加深对STL的理解和实战能力。

    湖南理工oj题解(学习用)-共230道题

    【标题】:“湖南理工oj题解(学习用)-共230道题”揭示了这是一个针对湖南理工大学在线编程竞赛平台(Online Judge,简称OJ)的题解集合,包含了230个不同题目。这类资源通常由参赛者或者经验丰富的程序员整理,...

    哈理工oj 1084百步穿杨

    哈理工OJ1084答案哈理工OJ1084答案哈理工OJ1084答案哈理工OJ1084答案哈理工OJ1084答案

    湖南理工学院OJ-小鱼比可爱

    湖南理工学院小鱼比可爱OJ题

    oj刷题 西安理工大学学生在线实验系统编程题答案(超级详细)

    这个“oj刷题”压缩包文件很可能是包含了西安理工大学在线实验系统中的一些典型题目,包括但不限于排序算法(如冒泡排序、快速排序、归并排序)、搜索算法(如二分查找、深度优先搜索、广度优先搜索)、图论问题(如...

    基于Laravel 5.0的OJ题解网站 , 目前涵盖安科OJ,南阳OJ,杭电OJ ,北大OJ,浙大OJ.zip

    【描述】中提到的“目前涵盖安科OJ,南阳OJ,杭电OJ,北大OJ,浙大OJ”意味着这个题解网站已经集成了多个知名OJ平台的题目,用户可以在一个统一的平台上找到这些不同OJ的题目并查看解决方案。安科OJ、南阳OJ、杭电OJ...

    ACM在线评测系统 NYOJ 题库 离线看题网页版 nyoj

    NYOJ,全称为南阳理工学院在线评测系统(Nanyang Institute of Technology Online Judge),是为ACM(国际大学生程序设计竞赛)以及其他编程爱好者提供的一种在线编程练习平台。该系统支持用户提交代码并进行实时...

    OJ1214_oj_child_

    The structure of a tree and the weight of each node under the representation of a child sibling are given.It is required to traverse the binary tree and output the weights of each node in order

    趣味题:柱状图排序 西安理工大学学生在线实验系统 oj

    趣味题:柱状图排序 西安理工大学学生在线实验系统 oj

    山东理工大学2016级OJ题1832

    【知识点详解】 1. **C 语言基础**:在这些题目中,主要使用了 C 语言作为编程语言,包括变量声明、输入输出、循环结构、函数定义与调用等基本概念。例如,`scanf` 用于从标准输入读取数据,`printf` 用于输出结果...

    竞赛题集南阳OJ部分习题及解答其他oj试题及解答

    竞赛题集南阳OJ部分习题及解答其他oj试题及解答提取方式是百度网盘分享地址

    DnuiOJ_oj题库_大连东软信息学院_打包文件_大连东软oj_DnuiOJ_

    【标题】"DnuiOJ_oj题库_大连东软信息学院_打包文件_大连东软oj_DnuiOJ_"所提及的是一个针对大连东软信息学院的在线编程竞赛(Online Judge,简称OJ)题库的压缩包。这个资源包含了学院内部用于教学和竞赛的编程题目...

    山东理工大学2016级OJ题目1833

    山东理工大学2016级OJ题目1833 在这篇文章中,我们将讨论山东理工大学2016级OJ题目1833所涉及到的知识点。该题目共包含四个子题目,分别是最值问题、整数位问题、小鑫数数儿问题和卡片游戏问题。 最值问题 在该...

    oj题目:计算浮点数的n次方

    计算浮点数的n次方,在北京大学的OJ网站上的题目,已经提交AC。可以作为参考。 原题如下: Description Problems involving the computation of exact values of very large magnitude and precision are common. ...

    经典动态规划 南阳104最大和

    给定一个由整数组成二维矩阵(r*c),现在需要找出它的一个子矩阵,使得这个子矩阵内的所有元素之和最大,并把这个子矩阵称为最大子矩阵。

    湖南理工学院OJ-阶乘求和-定义函数

    湖南理工学院OJ-阶乘求和-定义函数

    OJ网站上的常见错误分析

    OJ 网站上的常见错误分析 在 OJ 网站上编程时,经常会遇到各种错误信息,这些错误信息可能会让人感到困惑和沮丧。因此,本文将对 OJ 网站上的常见错误进行分析,以便更好地理解错误信息并解决编程问题。 1. ...

Global site tag (gtag.js) - Google Analytics