#atc002c. [atc002_c]最適二分探索木
[atc002_c]最適二分探索木
问题描述
想要构建一棵有 个叶子的有序二叉树。这棵二叉树的代价定义如下:
其中, 表示二叉树中从左边数第 个叶子的深度。 是作为输入给出的权重。请求出代价的最小值。
输入
输入数据从标准输入中按以下格式给出:
...
- 第一行是一个整数 ,表示元素的个数。
- 第二行是 个整数,表示元素的权重。其中第 (1≦i≦n)iw_i(1≦w_i≦1,000)$。
输出
输出满足条件的有序二叉树的最小代价。
部分得分
此问题设有部分得分。
- 对于满足 的数据集,如果正确解答则得到 50 分。
- 对于满足 的数据集,除上述得分外额外再得 50 分。
- 对于未添加任何限制的数据集,除上述得分外额外再得 1 分。
解释
示例输入 1
6
1 2 3 4 9 3
示例输出 1
53
构造如下图所示的二叉树是最优的。
图 1:对应示例输入输出的二叉树
构建这样的二叉树的代价为 53。