Problem
【SCOI2014】方伯伯的玉米田
Description
方伯伯在自己的农田边散步,他突然发现田里的一排玉米非常的不美。
这排玉米一共有株,它们的高度参差不齐。
方伯伯认为单调不下降序列很美,所以他决定先把一些玉米拔高,再把破坏美感的玉米拔除掉,使得剩下的玉米的高度构成一个单调不下降序列。
方伯伯可以选择一个区间,把这个区间的玉米全部拔高单位高度,他可以进行最多次这样的操作。拔玉米则可以随意选择一个集合的玉米拔掉。
问能最多剩多少株玉米,来构成一排美丽的玉米。
Input
第行包含个整数,分别表示这排玉米的数目以及最多可进行多少次操作。
第行包含个整数,第个数表示这排玉米,从左到右第株玉米的高度。
Output
Sample Input
1 | 3 1 |
Sample Output
1 | 3 |
Hint
标签:DP
树状数组
Solution
首先,显然每次拔高时,不管从哪里开始拔,区间右边界总是肯定不会使答案变小。有此贪心后,考虑到第株时前面拔高次,那么第株一定也已拔高次。
令表示考虑前株,共拔高了次,最多可以剩下多少。那么有
对于值,将其坐标设为,那么到时,需要找的是坐标在范围内的最小值,可以二维树状数组维护。
注意时第二层循环要倒着循环,以排除后效性,由于二维树状数组的坐标范围不能到,可以把所有坐标的横纵值强行加。
Code
1 |
|