[ABC145F] Laminate
题意翻译
现在有 $n$ 个柱子排在一起,每个柱子高度为 $h_i$。
有至多 $k$ 次机会任意修改某些柱子的高度。
然后,执行操作:每次可以横向消去一段连续的柱子。
问最终消除所有柱子的操作次数至少是多少。
By@[pengzijun](https://www.luogu.com.cn/user/556362)
题目描述
[problemUrl]: https://atcoder.jp/contests/abc145/tasks/abc145_f
$ 10^9 $ 行 $ N $ 列の白色グリッドのいくつかのマスを黒く塗って、アートを製作します。
現時点では、左から $ i $ 列目については下から $ H_i $ 個のマスを黒く塗り、その列の残りのマスは塗らない予定です。
アートの製作を開始する前に、あなたは $ K $ 個以下の列 ($ 0 $ 個でもよい) を選び、それらの列に対する $ H_i $ の値を $ 0 $ 以上 $ 10^9 $ 以下の好きな整数に変更できます。
変更後の値は列ごとに個別に選べます。
その後、あなたは次の操作を繰り返すことで変更後のアートを製作します。
- ある行の連続する $ 1 $ マス以上のマスを選んで黒く塗る。(すでに黒く塗られたマスを再び塗ってもよいが、塗らないことにしたマスを塗ってはならない。)
この操作を最小で何回行う必要があるか求めてください。
输入输出格式
输入格式
入力は以下の形式で標準入力から与えられる。
> $ N $ $ K $ $ H_1 $ $ H_2 $ $ ... $ $ H_N $
输出格式
必要な最小の操作回数を出力せよ。
输入输出样例
输入样例 #1
4 1
2 3 4 1
输出样例 #1
3
输入样例 #2
6 2
8 6 9 1 2 1
输出样例 #2
7
输入样例 #3
10 0
1 1000000000 1 1000000000 1 1000000000 1 1000000000 1 1000000000
输出样例 #3
4999999996
说明
### 制約
- $ 1\ \leq\ N\ \leq\ 300 $
- $ 0\ \leq\ K\ \leq\ N $
- $ 1\ \leq\ H_i\ \leq\ 10^9 $
- 入力はすべて整数である。
### Sample Explanation 1
例えば、$ H_3 $ の値を $ 2 $ に変更した上で以下のような操作を行うと、$ 3 $ 回の操作で変更後のアートを製作することができます。 - 下から $ 1 $ 行目の左から $ 1 $ 列目から $ 4 $ 列目までのマスを黒く塗る。 - 下から $ 2 $ 行目の左から $ 1 $ 列目から $ 3 $ 列目までのマスを黒く塗る。 - 下から $ 3 $ 行目の左から $ 2 $ 列目のマスを黒く塗る。