A93899.Alice的石子合并
普及/提高-
通过率:0%
时间限制:1.00s
内存限制:128MB
题目描述
有一排从左到右的 n 堆石子,初始依次编号为 1,2,…,n。
每个原始第 i 堆自带一对属性 (ai,bi)(非负整数)。
你可以反复对相邻两堆进行合并,直到只剩下一堆。一次合并必须选择一对当前相邻的块 X(在左)与 Y(在右),并指定哪一方是主动方:
- 右并左(右块主动):将右块 Y 并入左块 X。
本次费用为 aY(主动方当前携带的 a)。合并后,新块的属性完全继承被动方 X 的属性。 - 左并右(左块主动):将左块 X 并入右块 Y。
本次费用为 bX(主动方当前携带的 b)。合并后,新块的属性完全继承被动方 Y 的属性。
请计算,将所有石子最终合并成一堆的最小总代价。
输入格式
- 第一行一个整数 n。
- 第二行 n 个整数 a1,a2,…,an。
- 第三行 n 个整数 b1,b2,…,bn。
输出格式
输出一个整数,为最小总代价。
输入输出样例
输入#1
5 5 2 6 3 4 9 4 8 1 2
输出#1
13
说明/提示
数据范围
| 测试点 | n 范围 | ai,bi 范围 |
|---|---|---|
| 1∼2 | 2≤n<20 | 0≤ai,bi≤1012 |
| 3∼6 | 20≤n<500 | 0≤ai,bi≤1012 |
| 7∼20 | 500≤n≤2×105 | 0≤ai,bi≤1012 |
样例解释
合并过程
第 1 次:右并左
- 操作:主动 2 并到 被动 1
- 费用:a2=2
- 继承:保留锚点 1 的属性
- 新状态:
[1..2]@1(a=5,b=9) | [3..3]@3(a=6,b=8) | [4..4]@4(a=3,b=1) | [5..5]@5(a=4,b=2)
第 2 次:右并左
- 操作:主动 3 并到 被动 1
- 费用:a3=6
- 继承:保留锚点 1 的属性
- 新状态:
[1..3]@1(a=5,b=9) | [4..4]@4(a=3,b=1) | [5..5]@5(a=4,b=2)
第 3 次:左并右
- 操作:主动 4 并到 被动 5
- 费用:b4=1
- 继承:保留锚点 5 的属性
- 新状态:
[1..3]@1(a=5,b=9) | [4..5]@5(a=4,b=2)
第 4 次:右并左
- 操作:主动 5 并到 被动 1
- 费用:a5=4
- 继承:保留锚点 1 的属性
- 新状态:
[1..5]@1(a=5,b=9)(完成)