#6577. 镜像序列 (Mirror Array / Огледална низа)
镜像序列 (Mirror Array / Огледална низа)
题目名称:镜像序列 (Mirror Array / Огледална низа)
版权信息:2021年马其顿编程竞赛 - 社区与地区赛 (Macedonian Programming Contests 2021 - Community and Regional Competition)
题目描述
一个由 个整数组成的序列 () 被称为镜像序列(回文序列),如果对于所有的 都满足 。换句话说,无论你是从前向后读,还是从后向前读,该序列都是相同的。
现在你有一个可能不是镜像的序列。你希望通过执行以下操作任意次,将其变为镜像序列:
- 合并操作:选择序列中两个相邻的数字,并将它们替换为它们的和。
请注意,每执行一次该操作,序列的元素个数就会减少一个。你的任务是编写一个程序,计算为了使序列变为镜像序列,最少需要执行多少次合并操作。
输入格式
- 第一行:一个整数 ()。
- 第二行: 个正整数,代表初始序列的元素。每个元素均小于 。
评分说明:
- 对于 30% 的测试用例:。
- 对于 60% 的测试用例:。
- 对于全部测试用例:。
输出格式
- 第一行:输出使序列变为镜像所需的最少操作次数。
限制条件
- 时间限制:150 毫秒
- 内存限制:64 MB
样例数据
| 输入 | 输出 | 解释 (合并过程) |
|---|---|---|
32 2 4 |
1 |
(2+2) 4 4 4 |
51 3 4 7 1 |
1 (3+4) 7 1 1 7 7 1 |
|
41 7 3 5 |
2 |
(1+7) 3 5 8 3 5 8 (3+5) 8 8 |