摘要: 首先我们枚举次大值,然后确定以这个数为次大值的最大区间。 这个区间就是左边第二个比它大的数的下标+1,右边第二个比它大的数的下标-1。 难就难在找到这个区间。 我们考虑将数排序,然后从大到小将数原来的下标插入set,此时set里的值都大于等于当前插入的数。 所以利用set找到前驱的前驱,后继的后继, 阅读全文
posted @ 2016-02-28 11:29 羁旅 阅读(159) 评论(0) 推荐(0) 编辑
摘要: 显然可以看出这是一道DP,然后就开始定义状态。。。 f[i][j]表示已经处理完i根玉米,拔高了j次,剩下的玉米的最大值。 f[i][j] = max{f[x][y]+1}(x<i,y<=j,h[x]+y<=h[i]+j)。 于是就可以用二维树状数组维护最大值了,第一维维护拔高次数,第二维维护拔高后 阅读全文
posted @ 2016-02-28 11:04 羁旅 阅读(201) 评论(0) 推荐(0) 编辑