ρars/ey
题目描述
给定一颗有 $n$ 个节点的有根树,其中根节点是 $1$。你可以进行若干次以下操作:
- 选择一个节点,删去其子树内除其以外的点。
此操作的代价为 $f_i$,其中 $i$ 是你选择的节点子树大小。
你希望删掉除了 $1$ 以外的所有点,请问代价的最小值是多少?
输入输出格式
输入格式
第一行一个正整数 $n$。
第二行 $n-1$ 个正整数,第 $i$ 个表示 $f_{i+1}$。
接下来 $n-1$ 行,每行两个正整数,表示一条树边。
输出格式
一行一个正整数表示答案。
输入输出样例
输入样例 #1
8
11000 18640 32793 36187 45104 64932 66425
6 8
3 6
3 7
1 8
1 4
3 5
2 7
输出样例 #1
63744
说明
【样例解释】
先删除节点 $8$ 的子树内除了它自身的 $5$ 个点,再删除节点 $1$ 的子树内除了它自身的 $2$ 个点,代价为 $f_6+f_3=63744$。可以证明这是最小的代价。
【数据范围】
对于所有数据,保证 $1\le n\le 5000$,$1\le f_i\le 10^9$。
$$
\def{\arraystretch}{1.5}
\begin{array}{c|c|c}\hline
\textbf{测试点编号}&\bm{~~~~~~~~n\le~~~~~~~~}&~~~~\textbf{特殊限制}~~~~\cr\hline
\textsf1\sim \sf2 & 8& \cr\hline
\sf3\sim 6 & 15& \cr\hline
\sf7\sim 8 & 400&\textsf{A}\cr\hline
\textsf9 & 400 &\sf B\cr\hline
\sf10\sim 12 & 400&\cr\hline
\sf13\sim 14 & &\sf C\cr\hline
\sf15\sim 20 & &\cr\hline
\end{array}
$$
$\textsf A$:保证树上所有点度数均小于等于 $2$,其中 $1$ 号点度数为 $1$。
$\textsf B$:保证树上只有 $1$ 号点度数大于等于 $2$。
$\textsf C$:保证树随机生成,随机生成方式是,对于 $i\ge 2$,从 $[1,i-1]$ 中随机一个整数 $x$,在 $x$ 与 $i$ 之间连边。然后随机打乱所有节点的编号。