Largest Rectangle http://acm.hdu.edu.cn/showproblem.php?pid=1506 **
对 于每一块木板,Area=height[i]*(j-k+1) 其中,j<=x<=k,height[x]>=height[i];找j,k成为关键,一般方法肯定超时,利用动态规划,如果它左边高 度大于等于它本身,那么它左边的左边界一定满足这个性质,再从这个边界的左边迭代下去 for(i=1;i<=n;i++)
{
while(a[l[i]-1]>=a[i])
l[i]=l[l[i]-1];
}
for(i=n;i>=1;i–)
{
while(a[r[i]+1]>=a[i])
r[i]=r[r[i]+1];
}
一开始没怎么看懂解释。但是仔细想想就知道他的意思是说假设一个区段的长方形已经选择好,那么必有其中的任意一个木板高度高于长方形高度
而j-k+1是因为对于这并不是严格的长乘宽而是条数乘以高度