P15501 [ICPC 2025 APC] Gathering Sharks

题目描述

你是一群生活在二维海洋中的 $n$ 条鲨鱼的领袖。这些鲨鱼从左到右排列,每对相邻鲨鱼之间的距离为一个单位。 作为领袖,你希望所有鲨鱼聚集到一个公共点,形成一个群体。最初,没有两条鲨鱼属于同一个群体;对于每个 $i = 1, \ldots, n$,从左数第 $i$ 条鲨鱼自成一组,其组号为 $a_i$,该组仅包含它自己。 为了实现目标,你可以命令鲨鱼执行 $n - 1$ 次以下操作。 1. 你喊出一个整数 $b$,该整数需同时满足以下条件: - 存在一个编号为 $b$ 的组。 - 存在至少一个编号严格小于 $b$ 的组。 2. 然后,令 $c$ 为严格小于 $b$ 的最大现有组编号,编号为 $b$ 的组中的所有鲨鱼同时移动到编号为 $c$ 的组所在的位置,并且这两个组合并。 3. 合并后的组编号为 $b$,编号为 $c$ 的组不复存在。 所有鲨鱼以每单位时间一个单位距离的恒定速度移动。命令必须顺序执行,执行时间不重叠。一旦一个命令完成,下一个命令可以立即开始。 通过优化地命令鲨鱼 $n - 1$ 次,计算所有鲨鱼聚集到一个公共点所需的最短时间。

输入格式

输入的第一行包含一个整数 $n$($2 \le n \le 500$)。第二行包含 $n$ 个两两不同的整数 $a_1, a_2, \ldots, a_n$($1 \le a_i \le n$)。

输出格式

输出所有鲨鱼聚集到一个公共点所需的最短时间。

说明/提示

**样例输入/输出 #1 的解释** 你可以命令鲨鱼执行以下操作: 1. 你喊出 $3$。最左边的鲨鱼移动到左数第二条鲨鱼的位置,它们形成一个编号为 $3$ 的组。这花费 $1$ 单位时间。 2. 你喊出 $4$。右数第二条鲨鱼移动到编号为 $3$ 的组的位置,它们形成一个编号为 $4$ 的组。这花费 $1$ 单位时间。 3. 你喊出 $4$。编号为 $4$ 的组中的鲨鱼移动到最右边位置,形成一个四条鲨鱼的组。这花费 $2$ 单位时间。 总时间为 $1 + 1 + 2 = 4$。可以证明 $4$ 单位时间是最优的。 翻译由 DeepSeek 完成