#P16738. [GKS 2019 #F] Flattening
[GKS 2019 #F] Flattening
题目描述
Blotch 砌了一面墙。这面墙由 段组成,从左到右编号为 到 。由于他当时匆忙砌墙,并非所有段的高度都相同。第 段墙的高度为 米。
Blotch 希望通过重建其中的一些段来修复他的墙。他可以将每一段重建的高度设为任意他想要的高度。
如果满足 的下标 ()的个数不超过 ,那么 Blotch 就会感到满意。
请问 Blotch 至少需要重建多少段墙,才能使他感到满意?
输入格式
输入的第一行给出测试用例的数量 。接下来有 个测试用例。每个测试用例的第一行包含两个整数 和 ,分别表示墙的段数和相邻段之间高度变化的最大允许次数。
第二行包含 个整数。其中第 个整数是 ,表示第 段墙的高度。
输出格式
对于每个测试用例,输出一行,格式为 Case #x: y,其中 是测试用例编号(从 开始), 是 Blotch 为了感到满意而需要重建的最少段数。
4
8 2
300 100 300 300 200 100 800 500
5 3
100 100 100 100 3
7 3
10 20 40 10 10 30 30
10 2
30 30 60 60 90 90 60 60 30 30
Case #1: 3
Case #2: 0
Case #3: 1
Case #4: 2
提示
在第一个样例中,墙有 段,如果相邻段之间高度变化的次数不超过 ,Blotch 就会满意。他可以:
- 将第 段重建为高度 ,
- 将第 段重建为高度 ,
- 将第 段重建为高度 。
这样得到的高度序列为 ,使 Blotch 感到满意。
在第二个样例中,墙有 段,Blotch 在相邻段高度变化不超过 时就会满意。他原本的墙已经满足条件,因此不需要重建任何段。
在第三个样例中,墙有 段,Blotch 在相邻段高度变化不超过 时就会满意。他可以:
- 将第 段重建为高度 。
得到的高度序列为 ,使 Blotch 感到满意。
在第四个样例中,墙有 段,Blotch 在相邻段高度变化不超过 时就会满意。他可以:
- 将第 段重建为高度 ,
- 将第 段重建为高度 。
得到的高度序列为 ,使 Blotch 感到满意。
限制条件
。
对于所有 ,。
。
测试集 1(可见)
。
测试集 2(隐藏)
。
翻译由 DeepSeek V4 Pro 完成