记录动态规划dpl,dpr,分辨记录i左面的比i大的,右面比i大的,然后(dpr[i]-dpl[i]+1)*h[i]得出长度

动态转移方程while(temp>1 && h[temp-1]>=h[i]) temp=dpl[temp-1]

/*************************************************************************
> File Name: hdu1506.cpp
> Author: yang
> Mail:826123027@qq.com
> Created Time: 2014年08月24日 星期日 23:41:16
************************************************************************/ #include<iostream>
#include<stdio.h>
#include<memory.h>
using namespace std;
#define N 100005
int main(){
int dpl[N],dpr[N];
long long h[N];
int n;
while(scanf("%d",&n),n){
for(int i=1;i<=n;i++)
scanf("%lld",&h[i]);
dpl[1]=1;
int temp;
for(int i=2;i<=n;i++){
temp=i;
while(temp>1 && h[temp-1]>=h[i]) temp=dpl[temp-1];
dpl[i]=temp;
}
dpr[n]=n;
for(int i=n-1;i>=1;i--){
temp=i;
while(temp<n && h[i]<=h[temp+1]) temp=dpr[temp+1];
dpr[i]=temp;
}
long long sum,ans=0;
for(int i=1;i<=n;i++){
// cout<<dpl[i]<<" "<<dpr[i]<<endl; sum=(dpr[i]-dpl[i]+1)*h[i];
// cout<<"sum:"<<sum<<endl;
if(sum>ans) ans=sum;
}
cout<<ans<<endl;
}
}

最新文章

  1. 假装这些是MyEclipse的快捷键(1)
  2. 黄聪:手机移动端建站Jquery+CSS3+HTML5触屏滑动特效插件、实现触屏焦点图、图片轮展图
  3. 李洪强iOS开发之图片拉伸技巧
  4. kindeditor-4.1.10在线编辑器的使用[多个]
  5. Sicily1059-Exocenter of a Trian
  6. MyEclipse安装Eclipse Memory Analyzer插件,并进行错误文件分析流程
  7. HTML a标签 target属性作用
  8. EntityFramework Core不得不注意的性能优化意外收获,你会用错?
  9. ArcGIS API for JavaScript 4.2学习笔记[27] 网络分析之最短路径分析【RouteTask类】
  10. hdu1512 Monkey King(左偏树 + 并查集)
  11. PAT 甲级真题题解(1-62)
  12. C# - 设计模式目录
  13. 颜色空间之CIE2000色差公式
  14. Educational Codeforces Round 55 (Rated for Div. 2) B. Vova and Trophies
  15. java生产环境增量发版陷阱【原】
  16. linux查看操作系统的版本
  17. 牛客网 PAT 算法历年真题 1011 : 个位数统计 (15)
  18. [转]Serializable接口与Externalizable接口区别
  19. python 内置函数(一),低阶内置函数功能汇总
  20. MySQL Gap Lock问题

热门文章

  1. struts中简单的校验
  2. werkzeug源码阅读笔记(二) 下
  3. 基本数据结构简介--ath9k网卡驱动开发总结(二)
  4. Javascript面向对象之创建对象
  5. Unix/Linux环境C编程入门教程(15) BT5开发环境搭建
  6. Vxlan 原理
  7. oracle定时执行计划任务
  8. 什么时候css会见less
  9. SQL Server索引进阶第十一篇:索引碎片分析与解决
  10. 自学xml的几个例子