HDOJ 1506 Largest Rectangle in a Histogram
来源:互联网 发布:淘宝那家鞋子好 编辑:程序博客网 时间:2024/06/09 15:52
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1506
题意:如图一样,找出其中最大能形成的矩形
这题我们可以用贪心去解决,贪心的策略就是找到每一个点它往左边延伸比第一个它a[i]小的点l,和往右边延伸第一个比它大的点r,那么对于每一个点,能形成的最大的矩形面积就是(l-r+1)*a[i],这样我们就遍历每一个点就能找到最大值。
#include <cstdio>#include <cstring>#include <iostream>#include <algorithm>#define LL __int64using namespace std;const int maxn = 100000+5;LL a[maxn],l[maxn],r[maxn];int main(){int n;while(scanf("%d",&n) && n){for(int i=1; i<=n; i++)scanf("%I64d",&a[i]);l[1] = 1,r[n] = n;for(int i=2; i<=n; i++){int tmp = i;while(tmp>1 && a[i]<=a[tmp-1])tmp = l[tmp-1];l[i] = tmp;}for(int i=n-1; i>=1; i--){int tmp = i;while(tmp<n && a[i]<=a[tmp+1])tmp = r[tmp+1];r[i] = tmp;}LL Max = 0;for(int i=1; i<=n; i++)Max = max((r[i]-l[i]+1)*a[i], Max);printf("%I64d\n",Max);}return 0;}
0 0
- hdoj 1506 Largest Rectangle in a Histogram
- HDOJ 1506 Largest Rectangle in a Histogram
- HDOJ 1506 : Largest Rectangle in a Histogram DP求解
- hdoj 1506 | poj 2559 Largest Rectangle in a Histogram
- hdoj-1506-Largest Rectangle in a Histogram【动态规划】
- hdoj 1506 Largest Rectangle in a Histogram【dp】
- hdoj 1506 Largest Rectangle in a Histogram 【单调栈】
- HDOJ 1506 Largest Rectangle in a Histogram(单调栈)
- hdu 1506 Largest Rectangle in a Histogram
- HDU 1506 Largest Rectangle in a Histogram
- hdu 1506 Largest Rectangle in a Histogram
- hdu 1506 Largest Rectangle in a Histogram
- hdu 1506 Largest Rectangle in a Histogram
- HDU 1506 Largest Rectangle in a Histogram
- hdu 1506 Largest Rectangle in a Histogram
- HDU 1506 Largest Rectangle in a Histogram
- hdu 1506 Largest Rectangle in a Histogram
- hdu 1506 Largest Rectangle in a Histogram
- MySQL约束操作
- Win7x64系统过TP的一些尝试和目前遇到的问题
- 《编程之美: 求二叉树中节点的最大距离》
- 简单算法汇总
- bfs poj3984
- HDOJ 1506 Largest Rectangle in a Histogram
- theano tutorial(九)Configuration Settings and Compiling Modes(译)
- Android网络之数据解析----SAX方式解析XML数据
- CentOS 6.5 安装配置Tomcat7服务器
- UVA 10970 Big Chocolate
- Python执行shell脚本的几种方式(最好用subprocess.Popen来替代os.system)
- 新完美天龙
- 字符串的反转
- FZU 2171 防守阵地 II(线段树区间更新【lazy标记】)