标签:des style http io os ar for sp div
7 2 1 4 5 1 3 3 4 1000 1000 1000 1000 0
8 4000
思路:以每一行的高度为高,看左右分别可以延伸到哪里,算出面积求优解
代码:
#include<iostream> #include<algorithm> #include<cstdio> #include<cstring> using namespace std; #define N 100005 __int64 h[N],le[N],ri[N]; int main() { __int64 n,i; while(scanf("%I64d",&n),n) { for(i=1;i<=n;i++) { scanf("%I64d",&h[i]); le[i]=ri[i]=i; } for(i=1;i<=n;i++) while(le[i]>1&&h[le[i]-1]>=h[i]) le[i]=le[le[i]-1]; for(i=n;i>=1;i--) while(ri[i]<n&&h[ri[i]+1]>=h[i]) ri[i]=ri[ri[i]+1]; __int64 ans=0; for(i=1;i<=n;i++) { __int64 temp=((ri[i]-le[i]+1)*h[i]); if(temp>ans) ans=temp; } printf("%I64d\n",ans); } return 0; }
HDU 1056 Largest Rectangle in a Histogram(dp)(求最大的矩形面积)
标签:des style http io os ar for sp div
原文地址:http://blog.csdn.net/u014737310/article/details/40190183