luogu#P11598. [NOISG 2018 Finals] Safety

    ID: 35519 远端评测题 1000ms 512MiB 尝试: 0 已通过: 0 难度: 6 上传者: 标签>动态规划 DP2018动态规划优化NOISG(新加坡)

[NOISG 2018 Finals] Safety

题目背景

译自 NOISG 2018 Finals E. Safety

题目描述

小老鼠 Squeaky 最近开始欣赏视觉艺术,并尝试创作自己的艺术作品,在城里最负盛名的艺术节上展出!

他的作品由若干发光柱组成,其中每个发光柱又都是由发光立方体堆砌而成的。

具体来说,他的作品是排成一条直线的 NN 个发光柱,从左到右编号为 11NN。其中第 ii 个发光柱的高度为 SiS_i,意味着它由 SiS_i 个发光立方体堆砌而成。

例如下图是 N=20N=20 时一种可能的作品:

然而,观众撞到不安全的展品将造成灾难性的后果。所以,安全委员会要求 Squeaky 保证作品的安全性。具体来说,作品安全当且仅当任意两个相邻发光柱的高度差不超过 HH,即 SiSi+1H,i[1,N)|S_i-S_{i+1}|\le H,\forall i\in[1,N)

Squeaky 的作品可能是不安全的,为了确保正常展出,他希望通过修改作品使其安全。

他可以进行的修改只有两种:

  • 在发光柱 kk 上添加一个发光立方体,即 SkSk+1S_k\gets S_k+1
  • 从还有至少一个发光立方体的发光柱 kk 上移除一个发光立方体,即 SkSk1S_k\gets S_k-1

注意,即使一个发光柱没有发光立方体,我们也认为它依然存在于原来的位置。

你的任务是帮助 Squeaky 确定至少需要多少次修改他的作品才能安全。

输入格式

第一行包含两个整数 N,HN,H,含义如题所述。

接下来一行 NN 个整数,第 ii 个表示 SiS_i,即发光柱 ii 的初始高度。

输出格式

一行一个整数,Squeaky 为了使他的作品安全需要的最少修改次数。

6 1
2 10 0 2 4 3
10
6 3
2 10 2 6 4 3
6
4 1
1 4 1 4
4
10 1
10 9 8 7 6 5 4 3 2 1
0
3 0
1 1 3
2

提示

样例 #1 解释

如图所示,我们删去红色立方体,添加黄色立方体,通过修改 1010 次使 Squeaky 的作品安全:任意相邻的两个发光柱高度差都不超过 H=1H=1

可以证明,不存在少于 1010 步的修改方法。

这组样例满足子任务 33 和子任务 5599

样例 #2 解释

如图所示,我们删去红色立方体,添加黄色立方体,通过修改 66 次使 Squeaky 的作品安全。可以证明,不存在少于 66 步的修改方法。

这组样例满足子任务 5599

样例 #3 解释

如图所示,我们删去红色立方体,添加黄色立方体,通过修改 44 次使 Squeaky 的作品安全。可以证明,不存在少于 44 步的修改方法。

这组样例满足子任务 1133 和子任务 5599

样例 #4 解释

Squeaky 的作品本来就是安全的,所以不需要进行修改。

这组样例满足子任务 33 和子任务 5599

样例 #5 解释

如图所示,我们删去红色立方体,通过修改 22 次使 Squeaky 的作品安全。可以证明,不存在少于 22 步的修改方法。

这组样例满足所有子任务。

子任务

对于 100%100\% 的数据,1N2×1051\le N\le 2\times 10^50H1090\le H\le 10^90Si1090\le S_i\le 10^9

子任务 得分 数据范围及特殊性质
11 33 N10N\le 10Si4S_i\le 4
22 44 N14N\le 14H1H\le 1Si4S_i\le 4
33 99 N10N\le10H2H\le 2
44 55 H=0H=0
55 66 N500N\le 500Si400S_i\le 400
66 1111 N500N\le 500Si5×103S_i\le 5\times 10^3
77 N5×103N\le 5\times 10^3Si5×103S_i\le 5\times 10^3
88 2222 N5×103N\le 5\times 10^3
99 2929 无特殊限制