HDU - 1506 Largest Rectangle in a Histogram
来源:互联网 发布:知之网官网 编辑:程序博客网 时间:2024/05/21 15:18
题意:求最大的矩形面积
思路:单纯的搜索每个点能拓展的最大的矩形会超时,所以预处理,每个点的,到最左/右的最远的下标,那么矩形的面积就能求出来了,然后找最大值
#include <iostream>#include <cstdio>#include <cstring>#include <algorithm>using namespace std;const int MAXN = 100010;long long a[MAXN],l[MAXN],r[MAXN];int n,step,tmp;int main(){while (scanf("%d",&n) != EOF && n){a[0] = 0;for (int i = 1; i <= n; i++){scanf("%lld",&a[i]);l[i] = r[i] = i;}for (int i = 1; i <= n; i++)while (l[i] > 1 && a[l[i]-1] >= a[i])l[i] = l[l[i]-1];for (int i = n; i >= 1; i--)while (r[i] < n && a[r[i]+1] >= a[i])r[i] = r[r[i]+1];long long ans = 0;for (int i = 1; i <= n; i++)ans = max(ans,(r[i]-l[i]+1)*a[i]);cout << ans << endl;}return 0;}
0 0
- 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
- 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
- Shell脚本编程快速上手
- 矩阵求逆及行列式求值 - 未来再来添点更多矩阵计算功能
- 宏的使用
- Windows 8之失败,电脑作为娱乐设备VS工作工具
- 蝶雙飛雙
- HDU - 1506 Largest Rectangle in a Histogram
- 队列的顺序存储结构及其基本运算的实现
- 《Node.js开发指南》MicroBlog项目的问题汇总
- java反射机制(1)
- Button的使用(五):从xml中加载
- Android——Intent和Intent过滤器
- 基于ajax二级联动
- JSP 中文乱码问题的处理解决方案
- 最大公约数问题