#P6513. [QkOI#R1] Quark and Tree

[QkOI#R1] Quark and Tree

题目描述

给定一棵包含 nn 个节点的树,每个节点上有一个点权,点的编号为 1∼n1\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。

接下来 n−1n-1 行,一行两个整数 ai,bia_i,b_i,表示 aia_i 和 bib_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),则新生成的基环树如下图所示:

各节点深度见下表:

数据范围

本题采用捆绑测试。

对于所有数据,3≤n≤1063 \le n \le 10^6,−103≤wi≤103-10^3 \le w_i \le 10^3,1≤ai,bi≤n1 \le a_i,b_i \le n。

  • 子任务 11(1010 分):n≤200n \le 200。
  • 子任务 22(2020 分):n≤103n \le 10^3。
  • 子任务 33(4040 分):wi≥0w_i \ge 0。
  • 子任务 44(3030 分):无特殊限制。