AT_abc348_e [ABC348E] Minimize Sum of Distances
题目描述
给定一棵包含 $N$ 个顶点的树。顶点编号为 $1$ 到 $N$,第 $i$ 条边连接顶点 $A_i$ 和 $B_i$。
给定一个长度为 $N$ 的正整数序列 $C = (C_1, C_2, \ldots, C_N)$。定义 $d(a, b)$ 为顶点 $a$ 和 $b$ 之间的边数。对于 $x = 1, 2, \ldots, N$,定义
$$
f(x) = \sum_{i=1}^{N} (C_i \times d(x, i))
$$
请你求出 $\displaystyle \min_{1 \leq v \leq N} f(v)$ 的值。
输入格式
输入以如下格式从标准输入给出。
> $N$
> $A_1$ $B_1$
> $A_2$ $B_2$
> $\vdots$
> $A_{N-1}$ $B_{N-1}$
> $C_1$ $C_2$ $\cdots$ $C_N$
输出格式
请输出一个整数,表示答案。
说明/提示
## 限制条件
- $1 \leq N \leq 10^5$
- $1 \leq A_i, B_i \leq N$
- 给定的图是一棵树。
- $1 \leq C_i \leq 10^9$
## 样例解释 1
以 $f(1)$ 为例,$d(1, 1) = 0, d(1, 2) = 1, d(1, 3) = 1, d(1, 4) = 2$。因此,
$$
f(1) = 0 \times 1 + 1 \times 1 + 1 \times 1 + 2 \times 2 = 6
$$
同理,$f(2) = 5, f(3) = 9, f(4) = 6$。$f(2)$ 最小,所以输出 `5`。
## 样例解释 2
$f(2) = 1$,这是最小值。
由 ChatGPT 4.1 翻译