luogu#P6513. [QkOI#R1] Quark and Tree

[QkOI#R1] Quark and Tree

题目描述

给定一棵包含 nn 个节点的树,每个节点上有一个点权,点的编号为 1n1\sim n,请加一条不存在于给定的树中的边(且不能为自环),使加边后得到的基环树上所有点的深度与该点点权乘积之和最大。

我们认为基环树上的点的深度指该节点到环上的最短距离,特别地,环上的节点深度为 00

形式化地,你需要添加一条不存在于给定的树中的边(且不能为自环),并最大化:

i=1nwi×depi\sum_{i=1}^nw_i\times dep_i

其中 wiw_i 为节点 ii 的权值,depidep_i 为节点 ii 在基环树中的深度。

输入格式

第一行包含一个整数 nn,表示树中点的个数。

第二行包含 nn 个整数,第 ii 个整数表示节点 ii 的点权 wiw_i

接下来 n1n-1 行,一行两个整数 ai,bia_i,b_i,表示 aia_ibib_i 在树中有一条边连接。

输出格式

输出包含一行一个整数,表示加边后生成的基环树中,各个节点的深度与其点权乘积之和的最大值。

7
1 1 1 1 1 1 1
1 2
1 3
2 5
3 4
3 7
4 6
8
5
-6 3 -1 -7 -2
1 2
1 3
3 4
5 1
3

提示

样例解释

样例 1 给出的树如下图所示:

可以添加边 (1,5)(1,5),则新生成的基环树如下图所示:

各节点深度见下表:

数据范围

本题采用捆绑测试。

对于所有数据,3n1063 \le n \le 10^6103wi103-10^3 \le w_i \le 10^31ai,bin1 \le a_i,b_i \le n

  • 子任务 111010 分):n200n \le 200
  • 子任务 222020 分):n103n \le 10^3
  • 子任务 334040 分):wi0w_i \ge 0
  • 子任务 443030 分):无特殊限制。