博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
POJ2559 Largest Rectangle in a Histogram(单调栈)
阅读量:4627 次
发布时间:2019-06-09

本文共 922 字,大约阅读时间需要 3 分钟。

题目给一个由几个相连接的矩形组成的多边形,计算多边形包含的最大的矩形的面积。

POJ2559

要求的矩形的高一定是某一个用来组合的矩形的高;如果枚举每个矩形作为高的话,那样长就是这个矩形能向左向右继续延伸矩形的长度了。

所以这题本质也是用单调栈在O(n)计算出每个数作为最小数向左和向右能延伸的最长距离。

1 #include
2 #include
3 using namespace std; 4 #define MAXN 111111 5 int a[MAXN]; 6 int l[MAXN],r[MAXN]; 7 int stack[MAXN],top; 8 int main(){ 9 int n;10 while(~scanf("%d",&n) && n){11 for(int i=1; i<=n; ++i){12 scanf("%d",a+i);13 }14 a[++n]=-1;15 top=0;16 for(int i=1; i<=n; ++i){17 l[i]=r[i]=i;18 while(top && a[stack[top]]>a[i]){19 l[i]=l[stack[top]];20 r[stack[top]]=i-1;21 --top;22 }23 if(top && a[stack[top]]==a[i]) l[i]=l[stack[top]];24 stack[++top]=i;25 }26 long long res=0;27 for(int i=1; i

 

转载于:https://www.cnblogs.com/WABoss/p/5225464.html

你可能感兴趣的文章
团队作业8——第二次项目冲刺(Beta阶段)--第六天
查看>>
【转载】springboot:如何优雅的使用mybatis
查看>>
JVM垃圾回收机制
查看>>
AOP比喻
查看>>
Docker概述
查看>>
Java之替换“\n”符号
查看>>
php中this,self,parent三个关键字
查看>>
数据库范式
查看>>
CMAKE设置INSTALL工程,分别设置头文件、Lib和DLL的输出路径
查看>>
游标的使用
查看>>
CentOS VMware 配置IP小结 静态 配置 桥接 NAT
查看>>
Debug模式下加载文件,运行程序异常的慢
查看>>
题解:无线通讯网
查看>>
ognl表达式
查看>>
jmeter对自身性能的优化
查看>>
apicloud 基础
查看>>
关于Linux服务器磁盘空间占满问题的解决方法
查看>>
java内存泄漏问题排查
查看>>
Linux RSS/RPS/RFS/XPS对比
查看>>
关于AD编程的一些资料
查看>>