QOJ.ac

QOJ

時間限制: 5 s 記憶體限制: 1024 MB 總分: 36

#5832. 使其平滑

统计

你有一个包含 $N$ 个像素的一维数组。每个像素都有一个值,用 $0$ 到 $255$ 之间的整数表示。两个像素之间的“距离”定义为它们数值的绝对差。

你可以执行以下操作零次或多次:

  1. 以成本 $D$ 删除任意像素,删除后其原本的相邻像素将变为相邻。
  2. 以成本 $I$ 在任意位置插入一个任意值的像素——可以在两个现有像素之间、第一个像素之前或最后一个像素之后。
  3. 修改任意像素的值。成本为该像素旧值与新值之差的绝对值。

如果数组中任意相邻像素之间的距离都不超过 $M$,则称该数组是“平滑的”。求出使数组变得平滑所需的操作序列的最小总成本。

注意:空数组(不包含任何像素的数组)被视为平滑的。

输入格式

输入的第一行包含测试用例的数量 $T$。接下来是 $T$ 个测试用例,每个测试用例包含两行。第一行格式为 "$D$ $I$ $M$ $N$",下一行包含 $N$ 个整数 $a_i$,表示从左到右的像素值。

输出格式

对于每个测试用例,输出一行 "Case #x: y",其中 $x$ 是测试用例编号(从 1 开始),$y$ 是使输入数组平滑的最小成本。

数据范围

所有输入数字均为整数。

$1 \le T \le 100$ $0 \le D, I, M, a_i \le 255$

小数据集(测试集 1 - 可见;12 分)

$1 \le N \le 3$

大数据集(测试集 2 - 隐藏;24 分)

$1 \le N \le 100$

样例

样例输入 1

2
6 6 2 3
1 7 5
100 1 5 3
1 50 7

样例输出 1

Case #1: 4
Case #2: 17

说明

在案例 #1 中,将 7 修改为 3 的成本为 4,这是最便宜的方案。在案例 #2 中,删除操作非常昂贵;通过插入元素使最终数组变为 [1, 6, 11, 16, 21, 26, 31, 36, 41, 46, 50, 45, 40, 35, 30, 25, 20, 15, 10, 7] 会更便宜。

Discussions

About Discussions

The discussion section is only for posting: General Discussions (problem-solving strategies, alternative approaches), and Off-topic conversations.

This is NOT for reporting issues! If you want to report bugs or errors, please use the Issues section below.

Open Discussions 0
No discussions in this category.

Issues

About Issues

If you find any issues with the problem (statement, scoring, time/memory limits, test cases, etc.), you may submit an issue here. A problem moderator will review your issue.

Guidelines:

  1. This is not a place to publish discussions, editorials, or requests to debug your code. Issues are only visible to you and problem moderators.
  2. Do not submit duplicated issues.
  3. Issues must be filed in English or Chinese only.
Active Issues 0
No issues in this category.
Closed/Resolved Issues 0
No issues in this category.