试题编号: 201312-3
试题名称: 最大的矩形
时间限制: 1.0s
内存限制: 256.0MB
问题描述:
问题描述
  在横轴上放了n个相邻的矩形,每个矩形的宽度是1,而第i(1 ≤ i ≤ n)个矩形的高度是hi。这n个矩形构成了一个直方图。例如,下图中六个矩形的高度就分别是3, 1, 6, 5, 2, 3。

  请找出能放在给定直方图里面积最大的矩形,它的边要与坐标轴平行。对于上面给出的例子,最大矩形如下图所示的阴影部分,面积是10。
输入格式
  第一行包含一个整数n,即矩形的数量(1 ≤ n ≤ 1000)。
  第二行包含n 个整数h1, h2, … , hn,相邻的数之间由空格分隔。(1 ≤ hi ≤ 10000)。hi是第i个矩形的高度。
输出格式
  输出一行,包含一个整数,即给定直方图内的最大矩形的面积。
样例输入
6
3 1 6 5 2 3
样例输出
10


问题链接:CCF201312试题。

问题描述:首先输入正整数n,接着输入n个正整数表示直方图的一个高度,计算这些直方图中的最大矩形面积。(详见原问题,点击上面的链接)。

问题分析:解决这个问题,一种是用暴力法(枚举法)来解决,任何一个矩形必然始于第i个直方图,终止于第j块直方图(i<=j),从所有这些面积中找出最大矩形面积即可;另外一种办法是对这n个数只看一遍,就算出最大矩形面积,其计算复杂度为O(n),相比较而言,算法要复杂一些,还需要付出空间的代价。

程序说明:本程序采用暴力法实现,数据用数组来存储。另外一种数据存储方法是使用STL的包装类vector,可以实现动态数据存储,不受限于数据的多少。

参见:CCF201312-3 最大的矩形(解法二)(100分)。

提交后得100分的C++语言程序如下:

/* CCF201312-3 最大的矩形 */#include <iostream>using namespace std;const int N = 1000;
int h[N];int main()
{int n, ans, height, area;// 输入数据cin >> n;for(int i=0; i<n; i++)cin >> h[i];// 计算最大矩形面积:暴力法(枚举法)ans = 0;for(int i=0; i<n; i++) {height = h[i];for(int j=i; j<n; j++) {if(h[j] < height)height = h[j];area = (j - i + 1) * height;if(area > ans)ans = area;}}// 输出结果cout << ans << endl;return 0;
}

转载于:https://www.cnblogs.com/tigerisland/p/7564194.html

CCF201312-3 最大的矩形(100分)相关推荐

  1. CCF201312-3 最大的矩形(解法二)(100分)(废除!!!)

    试题编号: 201312-3 试题名称: 最大的矩形 时间限制: 1.0s 内存限制: 256.0MB 问题描述: 问题描述 在横轴上放了n个相邻的矩形,每个矩形的宽度是1,而第i(1 ≤ i ≤ n ...

  2. CCF201312-5 I’m stuck!(100分)

    试题编号: 201312-5 试题名称: I'm stuck! 时间限制: 1.0s 内存限制: 256.0MB 问题描述: 问题描述 给定一个R行C列的地图,地图的每一个方格可能是'#', '+', ...

  3. CSP202009-2 风险人群筛查(100分)【序列处理】

    试题编号: 202009-2 试题名称: 风险人群筛查 时间限制: 1.0s 内存限制: 256.0MB 问题描述: 题目背景 某地疫情爆发后,出于"应检尽检"的原则,我们想要通知 ...

  4. CCF201312-4 有趣的数(100分)

    试题编号: 201312-4 试题名称: 有趣的数 时间限制: 1.0s 内存限制: 256.0MB 问题描述: 问题描述 我们把一个数称为有趣的,当且仅当: 1. 它的数字只包含0, 1, 2, 3 ...

  5. CCF201403-2 窗口(100分)

    试题编号: 201403-2 试题名称: 窗口 时间限制: 1.0s 内存限制: 256.0MB 问题描述: 问题描述 在某图形操作系统中,有 N 个窗口,每个窗口都是一个两边与坐标轴分别平行的矩形区 ...

  6. CCF201409-2 画图(100分)

    试题编号: 201409-2 试题名称: 画图 时间限制: 1.0s 内存限制: 256.0MB 问题描述: 问题描述 在一个定义了直角坐标系的纸上,画一个(x1,y1)到(x2,y2)的矩形指将横坐 ...

  7. CCF201312-1 出现次数最多的数(100分)

    试题编号: 201312-1 试题名称: 出现次数最多的数 时间限制: 1.0s 内存限制: 256.0MB 问题描述: 问题描述 给定n个正整数,找出它们中出现次数最多的数.如果这样的数有多个,请输 ...

  8. CCF-CSP认证历年真题解(100分)

    转载: 链接出自:https://blog.csdn.net/tigerisland45/article/details/54755895 CCF-CSP认证历年真题解–python语言 CCF-CS ...

  9. 四川高中计算机学校图片,四川2021年100分能上计算机学校吗

    四川100分能上计算机学校吗?从计算机学校方面所进行分析地话,中专计算机学校所对其学生的各方面要求是比较容易被进行满足的,而从学生所考的100分成绩来说的话,成绩是比较地低的,如果想要报读计算机学校的 ...

最新文章

  1. 头文字C的混战何时方能休?论从某语言怎么怎么样到我要怎样怎样的语言
  2. uboot的环境变量分析(printenv)
  3. 【51单片机快速入门指南】9:省电模式(低功耗)
  4. 地表水预测模型软件_前沿科技 | 中科院等科学家合作研究开发出高速列车关键构件疲劳寿命预测软件系统...
  5. 有轻功:用3行代码让Python数据处理脚本获得4倍提速
  6. hypermesh安装包百度云_新闻突然!全新百度网盘发布
  7. 构件与构架,我的理解
  8. html搜索框如何加下拉框,js实现带搜索功能的下拉框
  9. Convert Sorted List to Balanced Binary Search Tree leetcode
  10. vue 中引入使用jquery
  11. man综述--系统调用和库函数的关系
  12. 解决方案:Windows下修改hosts文件
  13. Fibonacci 数列及其计算方法
  14. 三门峡市新型智慧城市顶层设计方案通过专家评审
  15. WARNING: We noticed you're using the `useBuiltIns` option without declaring a core-js version.
  16. 信息安全等级保护等级划分及适用行业
  17. python画国际象棋_python使用turtle绘制国际象棋棋盘
  18. 多态之父类引用指向子类对象
  19. java 房贷计算器代码_用JAVA编程一个房贷计算器
  20. Ajax 什么是Ajax? Ajax的基本语法

热门文章

  1. JavaScript数据结构与算法——队列详解(下)
  2. 使用vue-router懒加载解决首次加载时资源过多导致的速度缓慢问题
  3. QT4使用HDF5 类型错误
  4. 好程序员web前端分享CSS3边框
  5. sass笔记-1|Sass是如何帮你又快又好地搞定CSS的
  6. ajax中success函数无法改变全局或局部变量的值
  7. python 学习5--matplotlib画图实践
  8. 微软职位内部推荐-SDEII_ ECO
  9. cufon,在网页上画出特殊字体
  10. form、document.all[].value的数字处理