#P4950. 树的双中心

树的双中心

题目描述

给定一棵树 T=(V,E)T = (V, E),其中 VV 为节点集合,EE 为边集合。对于 VV 中的每个节点 vv,有一个权值函数 W(v)W(v),该函数的值均为正整数。记 d(u,v)d(u, v) 为节点 uuvv 之间的距离,表示它们之间唯一的一条路径的边数。若 uuvv 为同一个节点,则 d(u,v)=0d(u, v) = 0

你的任务是找出两个不同的节点 xxyy,使得以下表达式 S(x,y)S(x, y) 的值最小

$$S(x, y) = \sum_{v \in V} ( W(v) \times \min\{ d(v, x), d(v, y) \}) $$

输入格式

第一行为 NN1N500001<N≤50000,表示树的节点数目,树的节点从 11NN 编号。

接下来 N1N-1 行,每行两个整数 u,vu,v,表示 uuvv 之间有一条边。

再接下 NN 行,每行一个正整数,其中第 ii 行的正整数表示编号为 ii 的节点权值为 W(i)W(i),树的深度 100≤100

输出格式

输出最小的 S(x,y)S(x, y),结果保证不超过 10910^9

5
1 2
1 3
3 4
3 5
5
7
6
5
4
14

选取的两个中心节点分别为 2233