POJ - 2559 Largest Rectangle in a Histogram 单调栈
2015-06-09 09:42
423 查看
单调栈的练手题,主要内容就是把每一个矩形右界限和左界限算出来比较大小就OK了。
#include <algorithm> #include <iostream> #include <sstream> #include <cstring> #include <cstdlib> #include <string> #include <vector> #include <cstdio> #include <cmath> #include <queue> #include <stack> #include <map> #include <set> using namespace std; int l[100005],r[100005],h1[100005]; long long max1,p; int main() { int n; while (scanf("%d",&n)!=EOF&&n) { for (int i=1; i<=n; i++) { scanf("%d",&h1[i]); } h1[0]=-1; for (int i=1; i<=n; i++) { int j=i-1; while (h1[i]<=h1[j]) j=l[j]; l[i]=j; } h1[n+1]=-1; for (int i=n; i>0; i--) { int j=i+1; while (h1[i]<=h1[j]) j=r[j]; r[i]=j; } max1=0; for (int i=1; i<=n; i++) { p=(long long)(r[i]-l[i]-1)*h1[i]; max1=p>max1?p:max1; } cout<<max1<<endl; } return 0; }
相关文章推荐
- Linux文件系统的挂载和卸载
- android调用系统相机、调用系统相册,调用系统图片裁剪报错的解决方案
- VB.NET 读取写入XML文件
- 在myeclipse中添加hibernate+sqlsever数据库
- iOS之每日一记。。。。 键盘下去 限制textfiled的长度
- 随机过程的参考书籍
- 初来乍到
- 程序员保值的4个秘密
- J2EE总结(二)——与servlet从相识到相知
- Entity Framework
- 【VirtualDOM】
- ZBar之自定义二维码扫描
- 相似图片搜索的原理
- Python通过suds调用WCF服务 传递Python List 到 WCF Service
- 搜索技术概述
- Android常用工具类(收藏)
- Eclipse常见错误及解决方案
- 利用activity自定义dialog 开发总结
- 【算法】最大连续乘积子串
- ES6新特性概览