poj 2559

原创 2016年05月30日 21:07:20
#include <iostream>
#include <cstdio>
using namespace std;

const int N = 100005;

struct Elem
{
	int height;
	int count;
};

Elem stack[N];
int top;

int main()
{
	int height, n;
	long long ans, tot, tmp;
	while (scanf("%d", &n) != EOF && n)
	{
		top = 0;
		ans = 0;
		for (int i = 0; i < n; ++i)
		{
			scanf("%d", &height);
			tmp = 0;
			while (top > 0 && stack[top - 1].height >= height)
			{
				tot = stack[top - 1].height * (stack[top - 1].count + tmp);
				if (tot > ans) ans = tot;
				tmp += stack[top - 1].count;
				--top;
			}
			stack[top].height = height;
			stack[top].count = 1 + tmp;
			++top;
		}
		int tmp = 0;
		while (top > 0)
		{
			tot = stack[top - 1].height * (stack[top - 1].count + tmp);
			if (tot > ans) ans = tot;
			tmp += stack[top - 1].count;
			--top;
		}
		printf("%lld\n", ans);
	}
	return 0;
}

版权声明:本文为博主原创文章,未经博主允许不得转载。

单调栈(poj -- 2559)

给定从左到右多个矩形,已知这此矩形的宽度都为1,长度不完全相等。这些矩形相连排成一排,求在这些矩形包括的范围内能得到的面积最大的矩形,打印出该面积。所求矩形可以横跨多个矩形,但不能超出原有矩形所确定的...

单调栈:柱形统计图中最大面积(POJ 2559)

zz from http://www.cnblogs.com/legendmaner/archive/2013/04/18/3028748.html 题目大意: 给出一个柱形统计图(h...

POJ 2559 Largest Rectangle in a Histogram

1.题目描述:点击打开链接 2.解题思路:本题利用单调栈解决。单调栈是满足从栈顶到栈底,元素大小严格递增或者严格递减的栈。对于本题,如果我们可以知道以i为端点,向左可以最远延伸的距离和向右最远延伸的...

【POJ 2559 Largest Rectangle in a Histogram】+ 栈

Largest Rectangle in a Histogram Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 2...

poj2559 & zoj1985 &hdu1506 Largest Rectangle in a Histogram(笛卡尔树)

Largest Rectangle in a Histogram Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: ...

poj2559(单调栈)

题目链接:http://poj.org/problem?id=2559 Largest Rectangle in a Histogram Time Limit: 1...
  • F_cff
  • F_cff
  • 2016年11月20日 16:31
  • 125

POJ2559 HDU1506 ZOJ1985 Largest Rectangle in a Histogram【堆栈】

问题链接:POJ2559 HDU1506 ZOJ1985 Largest Rectangle in a Histogram。 问题描述:参见上述链接。 问题分析:解决这个问题,一种是用暴力法(枚举法...

POJ 2559 Largest Rectangle in a Histogram(RMQ+二分)

题意: 给你n 个宽度为1  高度不同的矩形,要求求最大的矩形面积, 高度低的可以向挨着的高度高的扩展。 思路: 很多都是单调栈,dp之类的。 给大家 提供另一个思路: 枚举矩形中心,二分右...

POJ2559 - Largest Rectangle in a Histogram - 单调栈+DP

1.题目描述: Largest Rectangle in a Histogram Time Limit: 1000MS   Memory Limit: 65536K Total Sub...

POJ 2559 Largest Rectangle in a Histogram --维护单调栈

相当于对于当前点 i ,求向左和向右分别能延伸到的位置 l[i], r[i],然后最后求 MAX(h[i] * (r[i]-l[i]) ).意思是向两边找到比它矮的位置为止.至于为什么比他矮就不能延伸...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:poj 2559
举报原因:
原因补充:

(最多只允许输入30个字)