SPOJ
来源:互联网 发布:口红哪个牌子好 知乎 编辑:程序博客网 时间:2024/05/16 14:08
题目连接:SPOJ - HISTOGRA- Largest Rectangle in a Histogram
题意是给定一个数组,要求找出其中的一个子区间
设
找
栈内从底到高值升序,下标升序。假设一个元素
可以推广到所有偏序关系。
#include<bits/stdc++.h>using namespace std;typedef long long ll;const int N=1e5+7;int n;int h[N],L[N],R[N];int main(){ while(~scanf("%d",&n)) { if(n==0) break; for(int i=1;i<=n;i++) scanf("%d",&h[i]); stack<int> s; s.push(0); h[0]=-1; for(int i=1;i<=n;i++) { while(!s.empty()&&h[s.top()]>=h[i]) s.pop(); L[i]=s.top(); s.push(i); } while(!s.empty()) s.pop(); s.push(n+1); h[n+1]=-1; for(int i=n;i>=1;i--) { while(!s.empty()&&h[s.top()]>=h[i]) s.pop(); R[i]=s.top(); s.push(i); } ll ans=0; for(int i=1;i<=n;i++) ans=max(ans,1LL*(R[i]-L[i]-1)*h[i]); printf("%lld\n",ans); } return 0;}
阅读全文
0 0
- SPOJ
- SPOJ
- SPOJ
- SPOJ
- SPOJ
- SPOJ
- SPOJ
- SPOJ
- SPOJ
- SPOJ
- SPOJ
- SPOJ
- SPOJ
- SPOJ
- SPOJ
- SPOJ
- SPOJ
- SPOJ
- FFmpeg基础知识总结
- C语言中的指针(指针数组 数组指针 函数指针 函数指针数组 指向函数指针数组的指针)
- 第二篇:开发使用 linux 常用命令整理
- librtmp实时消息传输协议(RTMP)库代码浅析
- 第三讲 跳转结果的方式
- SPOJ
- 【PMP认证考试之个人总结】第 4 章 项目范围管理
- 基本网络知识
- Android Studio中使用apt
- day6 linux操作基础命令 第三弹
- BZOJ 4027 [HEOI2015] 兔子与樱花
- 面试例题5—感知器实现and函数
- Java基础
- 从UIWebView到WKWebView