CCF-CSP 最大的矩形
  请找出能放在给定直方图里面积最大的矩形,它的边要与坐标轴平行。对于上面给出的例子,最大矩形如下图所示的阴影部分,面积是10。
第二行包含n 个整数h1, h2, … , hn,相邻的数之间由空格分隔。(1 ≤ hi ≤ 10000)。hi是第i个矩形的高度。
3 1 6 5 2 3
#include<cstdio>
#include<iostream>
#include<vector>
#include<string>
#include<cstring>
using namespace std;
const int N = ;
int a[N]; int main(){
int n;
while(cin>>n){
for(int i = ;i < n;++i){ //输入数据
cin>>a[i];
}
int ans = -; //先设置最终答案ans为-1
for(int i = ; i< n;++i){ //对于每个元素a[i]
int low = a[i]; //当前最小值low设置为a[i]
for(int j = i ; j < n;++j){ //对于i后面的每个元素
if(low > a[j]) //如果a[j] 比 当前设置的最小值还要小,那么最小值设置为a[j]
low = a[j];
int temp = (j - i + ) * low; //设置标记变量temp 为这段区间中的总和
if(temp > ans)
ans = temp;
}
}
cout<<ans<<endl;
}
return ;
}
我想还有许多人对二层循环那里不明白,其实笔者刚开始也不太明白,下面就来讲解一下这里吧、、、
有一个问题,就是总是向右边遍历,那么左边的数据怎么算?
其实,在不断向右边遍历的过程中,我们如果把下标 i 看成后面每个数的左边界就好了、、、
假如 i 现在为0,那么右边的每个数的左边界都是 0,并且按照代码中写的,不断找到i 到j之间的最小值,那么 0 到 i 之间的最小值的最终结果是不是就是n * 最小值呢
如果还不明白,还可以这么想,假如就三个数据,a1,a2,a3, 假如a1 比a2 小的前提下,
(1)a3 大于 a2 并且大于 a1 那么对于a3来说,最大值就是a3
(2)a3小于a2 并且大于a1 ,那么对于a3来说,最大值就是a3 * 2
、、、、、
所以从前向后遍历的过程,其实就是不断对于下标为i后面的某个元素j的左方向遍历过程、、、
大家懂了吗,如果还有问题,希望大家能提出来,笔者深知能力有限,但是能帮助大家的还是会尽力的、、
CCF-CSP 最大的矩形的更多相关文章
- CCF CSP 201312-3 最大的矩形
		
CCF计算机职业资格认证考试题解系列文章为meelo原创,请务必以链接形式注明本文地址 CCF CSP 201312-3 最大的矩形 问题描述 在横轴上放了n个相邻的矩形,每个矩形的宽度是1,而第i( ...
 - CCF CSP 201409-2 画图
		
CCF计算机职业资格认证考试题解系列文章为meelo原创,请务必以链接形式注明本文地址 CCF CSP 201409-2 画图 问题描述 在一个定义了直角坐标系的纸上,画一个(x1,y1)到(x2,y ...
 - CCF CSP 201403-2 窗口
		
CCF计算机职业资格认证考试题解系列文章为meelo原创,请务必以链接形式注明本文地址 CCF CSP 201403-2 窗口 问题描述 在某图形操作系统中,有 N 个窗口,每个窗口都是一个两边与坐标 ...
 - CCF CSP 认证
		
参加第八次CCF CSP认证记录 代码还不知道对不对,过两天出成绩. 成绩出来了,310分. 100+100+100+10+0: 考试13:27开始,17:30结束,提交第4题后不再答题,只是检查前四 ...
 - CCF CSP 201609-2 火车购票
		
题目链接:http://118.190.20.162/view.page?gpid=T46 问题描述 请实现一个铁路购票系统的简单座位分配算法,来处理一节车厢的座位分配. 假设一节车厢有20排.每一排 ...
 - CCF CSP 201703-3 Markdown
		
CCF计算机职业资格认证考试题解系列文章为meelo原创,请务必以链接形式注明本文地址 CCF CSP 201703-3 Markdown 问题描述 Markdown 是一种很流行的轻量级标记语言(l ...
 - CCF CSP 201703
		
CCF CSP 2017·03 做了一段时间的CCF CSP试题,个人感觉是这样分布的 A.B题基本纯暴力可满分 B题留心数据范围 C题是个大模拟,留心即可 D题更倾向于图论?(个人做到的D题基本都是 ...
 - CCF CSP 201609-3 炉石传说
		
CCF计算机职业资格认证考试题解系列文章为meelo原创,请务必以链接形式注明本文地址 CCF CSP 201609-3 炉石传说 问题描述 <炉石传说:魔兽英雄传>(Hearthston ...
 - CCF CSP 201403-3 命令行选项
		
CCF计算机职业资格认证考试题解系列文章为meelo原创,请务必以链接形式注明本文地址 CCF CSP 201403-3 命令行选项 问题描述 请你写一个命令行分析程序,用以分析给定的命令行里包含哪些 ...
 - CCF CSP 201709-4 通信网络
		
CCF计算机职业资格认证考试题解系列文章为meelo原创,请务必以链接形式注明本文地址 CCF CSP 201709-4 通信网络 问题描述 某国的军队由N个部门组成,为了提高安全性,部门之间建立了M ...
 
随机推荐
- Bundles
			
Bundles 接着在Global.asax文件的Application_Start方法中调用BundleConfig.RegisterBundles方法: protected void Applic ...
 - SQLSERVER用无中生有的思想来替代游标
			
SQLSERVER用无中生有的思想来替代游标 SQLSERVER用无中生有的思想来替代游标 昨天在MSDN论坛看到一个帖子,帖子中LZ需要根据某列的值把其他列的值插入到额外列 帖子地址:http:// ...
 - EasyNet.Solr 4.4.0发布及例子
			
EasyNet.Solr 4.4.0发布及例子 EasyNet.Solr 4.4.0已经发布,可以直接从http://easynet.codeplex.com/ 下载试用并反馈.最新版本进行了以下改动 ...
 - 联想E430Cwindow8系统换成win7
			
垃圾win8系统各种不习惯,尤其无线网络老是自己断掉,忍无可忍只能换成win7,之前换过一次,没有成功,记得是提示硬盘模式要由GPT换成MBR. 这次换系统采用了PE里直接分区,格式化所有数据,然后g ...
 - SQLSERVER2012 列存储索引的简单研究和测试
			
SQLSERVER2012 列存储索引的简单研究和测试 SQLSERVER2012 列存储索引的简单研究和测试 看这篇文章之前可以先看一下下面这两篇文章: 列存储索引 http://www.cnblo ...
 - LNMP安装与配置
			
Nginx与apache.lighttp性能综合对比,如下图: 注意:关闭rpm默认安装的apache和mysql 1.准备php函数的rpm包 y ...
 - MySQL(root用户)密码重置
			
分别在Windows下和Linux下重置了MYSQL的root的密码: 在windows下: 1:进入cmd,停止mysql服务:Net stop mysql 到mysql的安装路径启动mys ...
 - 使用java连接MySql,中文乱码解决的方法
			
排查MySql中文乱码的问题 1.在cmd中启动MySql. 打开命令提示符cmd,输入"mysql -uusername -ppassword",回车,就可以连接到数据库. 如输 ...
 - 第六届全球游戏大会( GMGC 北京 2017 )有哪些看点?
			
全球游戏大会作为亚太地区极具影响力的全球性游戏行业盛会,本次第六届全球游戏大会( GMGC 北京 2017 )将力邀全球50个国家.500多位业界领袖.5000多家企业.50000多位业界精英参展参会 ...
 - JS 常用功能收集
			
JS 常用效果收集 1. 回到顶部>> 爱词霸