设为首页 加入收藏

TOP

HDU 1506 Largest Rectangle in a Histogram
2014-11-23 21:46:33 来源: 作者: 【 】 浏览:5
Tags:HDU 1506 Largest Rectangle Histogram
思路:感觉跟dp有点关系,就放dp类里了,主要还是模拟思路
对于每一个柱形 K 能得到的最大面积是:(左连续的柱形个数+右连续的柱形个数 )* High[ K ]
而对于求左右连续个数有点像记忆化搜索
mark:
题意:给定n,后面n个数表示上述柱状图的高度(每个柱形底为1)

画一个矩阵,求面积最大是多少

 

 
#include   
#include   
#include   
#include   
#include   
#include   
#include   
#include   
#define inf 1000000000  
#define N 100010  
#define ll __int64  
using namespace std;  
ll a[N],l[N],r[N];//l[i] 表示从 l[i] 到 i 都是连续>=a[i]的数  
  
inline ll Max(ll a,ll b){return a>b a:b;}  
int main(){  
    int n,i,j,step,temp;  
    while(scanf("%d",&n),n){  
        a[0]=0;  
        for(i=1;i<=n;i++)scanf("%I64d",&a[i]),l[i]=r[i]=i;  
        for(i=1;i<=n;i++)  
            while(l[i]>1 && a[i]<=a[l[i]-1])l[i]=l[l[i]-1];  
  
        for(i=n;i>=1;i--)  
            while(r[i] 
  


】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇文件保存树形结构数据 下一篇[LeetCode]Populating Next Right..

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容:

·深入理解 Java 集合 (2025-12-27 07:22:48)
·Java集合框架全面解 (2025-12-27 07:22:45)
·时隔 15 年,巨著《J (2025-12-27 07:22:43)
·定义一个类模板并实 (2025-12-27 06:52:28)
·一文搞懂怎么用C语言 (2025-12-27 06:52:25)