03:粉刷栅栏
总时间限制:
1000ms
内存限制:
65536kB
描述
小明家有一道栅栏,由N块竖立的木板构成,每块的宽度均为1,高度为H_i,相邻木板之间没有缝隙,紧密地连在一起形成一道栅栏墙。
栅栏需要刷漆,小明的刷子的宽度为1。我们把落下刷子连续刷动(中间不能提起刷子)直到提起刷子称为"一笔"。这与写字时的笔画数概念相同。
小明可以竖着刷漆,一笔把一块木板从底到顶刚好刷完。他也可以横着刷漆,一笔把连续的若干块木板刷完一条宽度为1的范围,如果中间遇到高度上的缺口,则这一笔结束。刷过漆的部分允许重复刷漆。
求:小明刷满整块栅栏墙最少需要多少笔。
输入
第1行:1个整数N,表示木板的数量
第2行:N个整数,分别表示每块木板的高度H_i
1 <=N <= 50000
1 <= H_i <= 10^9
输出
第1行:1个整数,表示答案。
样例输入
52 2 1 2 1
样例输出
3
说明:此题可以用分治或者递归
f(int l,int r)函数
首先,我们找出最短的高min1,刷墙次数初始就为min1,此时去找高比min1大的第一个,然后看后面有没有连续的,一直找到分段处,