CCF 201312-3 最大的矩形 100分

Posted 登登登ccc

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了CCF 201312-3 最大的矩形 100分相关的知识,希望对你有一定的参考价值。

思路分析:依次遍历高度数组,首先选择正在遍历的高度作为中间值,并向左和向右进行延申,如果遇到比这个高度更低的则停止,接着计算这一块的矩形面积,和最大值比较,确定是否更新最大值。

#include<bits/stdc++.h>

using namespace std;

int a[1010];

int main() {
	int n;
	cin>>n;
	for(int i=0; i<n; i++)
		cin>>a[i];

	int ans=0;
	for(int i=0; i<n; i++) {

		int left=i,right=i;
		while(left>0 && a[left-1]>=a[i])
			left--;

		while(right<n && a[right+1]>=a[i])
			right++;

		ans=max(ans,(right-left+1)*a[i]);
	}

	cout<<ans<<endl;
	return 0;
}

以上是关于CCF 201312-3 最大的矩形 100分的主要内容,如果未能解决你的问题,请参考以下文章

CCF 201312-3 最大的矩形 100分

CCF 201312-3最大的矩形 (暴力,离散化)

CCF 201312-3 最大的矩形

CCF - 201312-3 - 最大的矩形

CCF CSP 201312-3 最大的矩形

CCF 201312-3 最大的矩形[比较简单]