AT_joi2021ho_a とてもたのしい家庭菜園 (Growing Vegetables is Fun 4)
题目描述
家庭菜园爱好者比太郎在自家院子里种植了一种叫做“比巴草”的植物。院子里共有 $N$ 株比巴草,沿东西方向排成一行,从西侧开始依次编号为 $1$ 到 $N$。当前,第 $i$ 株比巴草($1 \leq i \leq N$)的高度为 $A_i$。
由于经过特殊品种改良,每次浇水后,比巴草的高度会增加 $1$。比太郎为了让院子的观赏性更好,打算多次浇水,使得最终满足以下条件:
- 经过所有浇水后,第 $i$ 株比巴草的高度为 $B_i$。此时,存在一个整数 $k$($1 \leq k \leq N$),使得“对于 $1 \leq j \leq k-1$,有 $B_j < B_{j+1}$”且“对于 $k \leq j \leq N-1$,有 $B_j > B_{j+1}$”。
也就是说,最终高度序列 $B$ 存在一个峰值点 $k$,使得从左到 $k$ 单调递增,从 $k$ 到右端单调递减。
但比太郎手笨,每次只能选择一个区间 $L, R$($1 \leq L \leq R \leq N$),同时给区间内的所有比巴草浇水一次。
比太郎希望浇水的次数尽可能少。
给定比巴草的数量和当前高度,请编写程序,求满足条件所需的最小浇水次数。
输入格式
输入为一行,包含 $N$ 和 $A_1, A_2, \ldots, A_N$,均为整数。
输出格式
输出满足条件所需的最小浇水次数。
说明/提示
## 限制
- $2 \leq N \leq 200\,000$。
- $1 \leq A_i \leq 1\,000\,000\,000$($1 \leq i \leq N$)。
## 子任务
1.(40 分)$N \leq 2\,000$。
2.(60 分)无额外限制。
## 样例解释 1
可以按如下方式浇水 $3$ 次满足条件:
- 第一次选择 $L=2$,$R=5$,给第 $2,3,4,5$ 株浇水。高度变为 $3,3,3,4,2$。
- 第二次选择 $L=2$,$R=3$,给第 $2,3$ 株浇水。高度变为 $3,4,4,4,2$。
- 第三次选择 $L=3$,$R=3$,给第 $3$ 株浇水。高度变为 $3,4,5,4,2$。
无法在 $2$ 次或更少的浇水内满足条件,因此最小次数为 $3$。
## 样例解释 2
初始状态已经满足条件,因此最小次数为 $0$。
## 样例解释 3
只需一次浇水即可满足条件,可以选择 $L=1,R=1$ 给第 $1$ 株浇水,或 $L=2,R=2$ 给第 $2$ 株浇水。
由 ChatGPT 4.1 翻译