码迷,mamicode.com
首页 > 其他好文 > 详细

51nod_1102_面积最大的矩形

时间:2018-02-01 20:32:46      阅读:108      评论:0      收藏:0      [点我收藏+]

标签:define   最大的   ons   fine   name   function   type   就是   std   

思路: 对每个柱子h,左右撑满就是就是这个高度对应的面积的极大值,取最大就可以了;

#include<algorithm>
#include<cstdlib>
#include<iostream>
#include<cstring>
#include<cstdlib>
#include<queue>
#include<functional>
#include<utility>//pair
#define INF 0x7f7f7f7f
#define getrand(a,b) (int)((rand()/33000.0)*((b)-(a)+1))+(a)
using namespace std;
typedef long long LL;
const int maxnn=100+5;
const int maxn=100000+5;
const int mod=1e9+7;
priority_queue< pair<LL,int> > q;
int main()
{
    int n,x,m;
    LL ans=0;
    cin>>n;
    for(int i=0;i<n;i++){
        cin>>x;
        m=1<<30;  //左侧  
        while((!q.empty())&&q.top().first>x){
            if(m>q.top().second) m=q.top().second;
            ans=max(ans,q.top().first*(i-q.top().second));
            q.pop();
        }
        if(m!=1<<30) q.push((pair<LL,int>){x,m});
        else q.push((pair<LL,int>){x,i});
    }
    while(!q.empty()){
        ans=max(ans,q.top().first*(n-q.top().second));
        q.pop();
    }
    cout<<ans<<endl;
    return 0;
}

 

51nod_1102_面积最大的矩形

标签:define   最大的   ons   fine   name   function   type   就是   std   

原文地址:https://www.cnblogs.com/Gsimt/p/8400767.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!