zoukankan      html  css  js  c++  java
  • PKU 2082 Terrible Sets(单调栈)

    题目大意:原题链接

    一排紧密相连的矩形,求能构成的最大矩形面积。

    为了防止栈为空,所以提前加入元素(0,0).

    #include<cstdio>
    #include<stack>
    #define maxn 50005
    using namespace std; 
    struct Element
    {
        int length;
        int height;
        Element(){}
        Element(int _w,int _h){
            length=_w,height=_h;
        }
    }e[maxn];
    int n,curlength,curheight,curArea,maxArea;
    stack<Element> S;
    int get_Max()
    {
        S.push(Element(0,0));
        maxArea=0;
        for(int i=0;i<=n;i++){
            curheight=e[i].height;
            curlength=0;
            while(S.top().height>curheight){
                Element now=S.top();
                S.pop();
                curlength+=now.length;
                curArea=curlength*now.height;
                if(curArea>maxArea)
                    maxArea=curArea;
            }
            curlength+=e[i].length;
            S.push(Element(curlength,curheight));
        }
        return maxArea;
    }
    int main()
    {
        while(scanf("%d",&n),n!=-1){
            for(int i=0;i<n;i++)
                scanf("%d%d",&e[i].length,&e[i].height);
            e[n].height=e[n].length=0;
            int ans=get_Max();
            printf("%d
    ",ans);
        }
        return 0;
    }
  • 相关阅读:
    hadoop2.3.0cdh5.0.2 升级到cdh5.7.0
    strace
    ganglia3.7.2,web3.7.1安装
    hadoop balancer
    linux-小命令
    Ceph 架构以及原理分析
    Ceph 文件存储
    Ceph 对象存储
    Ceph 块存储
    Ceph 集群搭建
  • 原文地址:https://www.cnblogs.com/freinds/p/6425578.html
Copyright © 2011-2022 走看看