201312-3

问题描述
  在横轴上放了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
 
源代码:
#include <iostream>
using namespace std;
int main()
{
 int n,i,j,h,s,max,a[1001];
 cin>>n;
 for(i=0;i<n;i++)
 cin>>a[i];
 max=0;
 //从第一个矩形开始,往右扫描,若后面的矩形高度比第一个低,则h为较低的那个值,不断发生改变
 for(i=0;i<n;i++)
 {
  h=a[i];
  for(j=i;j<n;j++)
  {
     if(a[j]<h)
      h=a[j];
      s=h*(j-i+1);   //矩形面积=长X宽
      if(s>max)
      max=s;
  } 
 }
 cout<<max<<endl; 
 return 0;
}

CCF真题之最大矩形的更多相关文章

  1. CCF真题之最优灌溉

    201412-4 问题描述 雷雷承包了很多片麦田,为了灌溉这些麦田,雷雷在第一个麦田挖了一口很深的水井,所有的麦田都从这口井来引水灌溉. 为了灌溉,雷雷需要建立一些水渠,以连接水井和麦田,雷雷也可以利 ...

  2. CCF真题之画图

    201409-2 问题描述 在一个定义了直角坐标系的纸上,画一个(x1,y1)到(x2,y2)的矩形指将横坐标范围从x1到x2,纵坐标范围从y1到y2之间的区域涂上颜色. 下图给出了一个画了两个矩形的 ...

  3. CCF真题之窗口

    201403-2 问题描述 在某图形操作系统中,有 N 个窗口,每个窗口都是一个两边与坐标轴分别平行的矩形区域.窗口的边界上的点也属于该窗口.窗口之间有层次的区别,在多于一个窗口重叠的区域里,只会显示 ...

  4. CCF真题Z型输出

    #include<stdio.h> #include<iostream> #include<string.h> #include<algorithm> ...

  5. CCF模拟题 最大的矩形

    最大的矩形 时间限制: 1.0s 内存限制: 256.0MB     问题描述 在横轴上放了n个相邻的矩形,每个矩形的宽度是1,而第i(1 ≤ i ≤ n)个矩形的高度是hi.这n个矩形构成了一个直方 ...

  6. CCF真题之命令行选项

    201403-3 问题描述 请你写一个命令行分析程序,用以分析给定的命令行里包含哪些选项.每个命令行由若干个字符串组成,它们之间恰好由一个空格分隔.这些字符串中的第一个为该命令行工具的名字,由小写字母 ...

  7. CCF真题之节日

    201503-3 问题描述 有一类节日的日期并不是固定的,而是以“a月的第b个星期c”的形式定下来的,比如说母亲节就定为每年的五月的第二个星期日. 现在,给你a,b,c和y1, y2(1850 ≤ y ...

  8. CCF真题之字符串匹配

    201409-3 问题描述 给出一个字符串和多行文字,在这些文字中找到字符串出现的那些行.你的程序还需支持大小写敏感选项:当选项打开时,表示同一个字母的大写和小写看作不同的字符:当选项关闭时,表示同一 ...

  9. CCF真题之网络延时

    201503-4 问题描述 给定一个公司的网络,由n台交换机和m台终端电脑组成,交换机与交换机.交换机与电脑之间使用网络连接.交换机按层级设置,编号为1的交换机为根交换机,层级为1.其他的交换机都连接 ...

随机推荐

  1. eclipse dbviewer,eclipse java8

    进入/home/xxx(用户名)/.local/share/applications,看是否有eclipse和深度音乐desktop配置文件,为eclipse.desktop配置图标, 那现在终端输入 ...

  2. jQuery EasyUI---validatebox 校验规则扩展

    EasyUI 的 validatebox 插件, 验证规则相对比较单一也比较少,如下. rules: { email:{ validator: function(value){ return ...? ...

  3. C++ 简单中文敏感词检测工具类

    具体思路: 1->敏感词库,可从数据库读取,也可以从文件加载. 2->将敏感词转化为gbk编码,因为gbk严格按照字符一个字节,汉字两个字节的格式编码,便于容易切分文字段. 3->将 ...

  4. KVO机制浅析和实例演示

    什么是KVO? KVO是Key-Value-Observing的缩写,通过KVO这种机制对象可以通过它得到其他对象的某个属性的变更通知.这种机制在MVC模式下显得更为重要,KVO可以让视图对象经过控制 ...

  5. charles工具的使用

    charles工具使用 charles除了之前介绍过模拟弱网的功能外,还有很多强大的功能.最近客户端测试用到的功能介绍如下: 一.准备工作 1.手机设置代理 charles设置代理端口号8888:Pr ...

  6. 关于action script与js相互调用的Security Error问题

    大家都知道,as和js相互调用可以通过ExternalInterface.call和ExternalInterface.addCallback来进行. 比较好的做法是使用之前通过ExternalInt ...

  7. emmc boot1 boot2 partition

    使用mfg tool烧写android5.1的镜像之后,再使用旧版的mfg tool烧写linux或者android镜像,都不能正常启动,而且运行的uboot还是android5.1版本的uboot. ...

  8. ubuntu12.04 安装 setuptools

    ubuntu 12.04 安装django时,提示缺少setuptools. 转载自: http://blog.csdn.net/xudongtiankong/article/details/8180 ...

  9. Date and Time Pattern

    The following examples show how date and time patterns are interpreted in the U.S. locale. The given ...

  10. 禁用ipv6

    禁用ipv6 1.在/etc/sysctl.conf 添加一行:net.ipv6.conf.all.disable_ipv6=1 2.在/etc/sysconfig/network 添加一行:NETW ...