#P8564. ρars/ey

ρars/ey

题目描述

给定一颗有 nn 个节点的有根树,其中根节点是 11。你可以进行若干次以下操作:

  • 选择一个节点,删去其子树内除其以外的点。

此操作的代价为 fif_i,其中 ii 是你选择的节点子树大小。

你希望删掉除了 11 以外的所有点,请问代价的最小值是多少?

输入格式

第一行一个正整数 nn

第二行 n1n-1 个正整数,第 ii 个表示 fi+1f_{i+1}

接下来 n1n-1 行,每行两个正整数,表示一条树边。

输出格式

一行一个正整数表示答案。

8
11000 18640 32793 36187 45104 64932 66425 
6 8
3 6
3 7
1 8
1 4
3 5
2 7
63744

提示

【样例解释】

先删除节点 88 的子树内除了它自身的 55 个点,再删除节点 11 的子树内除了它自身的 22 个点,代价为 f6+f3=63744f_6+f_3=63744。可以证明这是最小的代价。

【数据范围】

对于所有数据,保证 1n50001\le n\le 50001fi1091\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} $$

A\textsf A:保证树上所有点度数均小于等于 22,其中 11 号点度数为 11

B\textsf B:保证树上只有 11 号点度数大于等于 22

C\textsf C:保证树随机生成,随机生成方式是,对于 i2i\ge 2,从 [1,i1][1,i-1] 中随机一个整数 xx,在 xxii 之间连边。然后随机打乱所有节点的编号。