AlgoMooc
← 返回题库

K0064. 神秘宝藏洞穴中的宝箱

困难通过率 54% · 提交 26 · 通过 14
动态规划贪心模拟数学

在一个项目中,小慕负责清理一组按顺序排列的数据节点,每个节点存储了一个整数值,由数组 `treasures` 表示。小慕有一个特殊的处理工具,可以一次性处理多个节点并提取其中的值。 这个工具的工作方式如下: 1. 每次操作可以选择以下两种方式之一: - 从最前面的三个节点中挑选任意两个节点处理,提取它们的值。操作的代价为这两个节点中值的最大值。 - 如果剩余的节点数量少于三个,那么就一次性把所有剩余节点处理掉,提取它们的值。操作的代价为剩余节点中值的最大值。 2. 每次操作后,工具会移除已处理的节点,剩余的节点继续按顺序等待下一次操作。 小慕需要计算出清空所有节点并提取其中值所需的最小代价。

提示:带虚线的词点一下有通俗解释。

输入描述

- 第一行包含一个整数 `n`,表示宝箱的数量,`1 <= n <= 1000`。 - 第二行包含 `n` 个整数 `treasures[0], treasures[1], ..., treasures[n-1]`,其中 `1 <= treasures[i] <= 10^6`。

输出描述

- 输出一个整数,表示清空所有宝箱并拿走里面宝石所需的最小代价。

示例

示例 1

输入

4
6 2 8 4

输出

12

说明:- 初始时,`treasures = [6, 2, 8, 4]`。 - 在第一次操作中,移除 `treasures[0] = 6` 和 `treasures[2] = 8`,操作成本为 `max(6, 8) = 8`。现在,`treasures = [2, 4]`。 - 在第二次操作中,移除剩余元素,操作成本为 `max(2, 4) = 4`。 - 移除所有元素的成本为 `8 + 4 = 12`,这是移除 `treasures` 中所有元素的最小成本。所以输出 `12`。

示例 2

输入

4
2 1 3 3

输出

5

说明:- 初始时,`treasures = [2, 1, 3, 3]`。 - 在第一次操作中,移除 `treasures[0] = 2` 和 `treasures[1] = 1`,操作成本为 `max(2, 1) = 2`。现在,`treasures = [3, 3]`。 - 在第二次操作中,移除剩余元素,操作成本为 `max(3, 3) = 3`。 - 移除所有元素的成本为 `2 + 3 = 5`,这是移除 `treasures` 中所有元素的最小成本。所以输出 `5`。

时间限制 1000 ms · 内存限制 128 MB

看不懂题目?点开图解(训练营专属)

登录后查看题目图解

题目图解为训练营学员专属内容,请先登录。

微信扫码登录还不是训练营学员?了解训练营 →
写完代码点「提交」,将对全部测试用例判题。