CCF-CSP 最大的矩形
请找出能放在给定直方图里面积最大的矩形,它的边要与坐标轴平行。对于上面给出的例子,最大矩形如下图所示的阴影部分,面积是10。
第二行包含n 个整数h1, h2, … , hn,相邻的数之间由空格分隔。(1 ≤ hi ≤ 10000)。hi是第i个矩形的高度。
3 1 6 5 2 3
1 #include<cstdio> 2 #include<iostream> 3 #include<vector> 4 #include<string> 5 #include<cstring> 6 using namespace std; 7 const int N = 1003; 8 int a[N]; 9 10 int main(){ 11 int n; 12 while(cin>>n){ 13 for(int i =0 ;i < n;++i){ //输入数据 14 cin>>a[i]; 15 } 16 int ans = -1; //先设置最终答案ans为-1 17 for(int i = 0 ; i< n;++i){ //对于每个元素a[i] 18 int low = a[i]; //当前最小值low设置为a[i] 19 for(int j = i ; j < n;++j){ //对于i后面的每个元素 20 if(low > a[j]) //如果a[j] 比 当前设置的最小值还要小,那么最小值设置为a[j] 21 low = a[j]; 22 int temp = (j - i + 1) * low; //设置标记变量temp 为这段区间中的总和 23 if(temp > ans) 24 ans = temp; 25 } 26 } 27 cout<<ans<<endl; 28 } 29 return 0; 30 }
我想还有许多人对二层循环那里不明白,其实笔者刚开始也不太明白,下面就来讲解一下这里吧、、、
有一个问题,就是总是向右边遍历,那么左边的数据怎么算?
其实,在不断向右边遍历的过程中,我们如果把下标 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的左方向遍历过程、、、
大家懂了吗,如果还有问题,希望大家能提出来,笔者深知能力有限,但是能帮助大家的还是会尽力的、、
转载于:https://www.cnblogs.com/dqsBK/p/5312578.html
CCF-CSP 最大的矩形相关推荐
- CCF CSP认证菜鸟刷题日志
CCF CSP菜鸟刷题日志(c/c++) 本萌新写给自己看的,要是有大佬路过,请多多指教orz 立个flag:每日一更,至201903 9月15ccf csp,冲鸭! 今天(2019.8.18)起每天 ...
- CCF CSP认证考试题解目录
由于本人的书籍<算法详解(C++11 语言描述)>已经出版,为了降低题解的维护难度,有关CCF CSP考试的所有题解的更新将全部在书籍的配套仓库进行,CSDN博客中不再进行任何题解的更新. ...
- CCF CSP 201609-2 火车购票
题目链接:http://118.190.20.162/view.page?gpid=T46 问题描述 请实现一个铁路购票系统的简单座位分配算法,来处理一节车厢的座位分配. 假设一节车厢有20排.每一排 ...
- 计算机能力挑战赛_蓝桥杯、PAT、CCF CSP、团体程序设计天梯赛、传智杯、计算机能力挑战赛、软考等大学生编程比赛/考试介绍...
介绍7个适合普通大学生参加的编程比赛/考试(注:有的比赛如蓝桥杯有多种赛别,本文仅介绍其中的程序设计/编程比赛). 编程入门书籍推荐<算法笔记>,内容详细易懂,对新手非常友好,描述语言为C ...
- 以CCF CSP认证为抓手,积极探索软件基础能力递进式培养体系
原文链接:以CCF CSP认证为抓手,积极探索软件基础能力递进式培养体系 发布单位:学会 发布时间:2017-01-20 16:16 作者:陆建峰 余立功 摘要:为提升计算机专业类学生 ...
- ccf csp寻宝!大冒险!(C语言)
ccf csp寻宝!大冒险! 题目背景 暑假要到了.可惜由于种种原因,小 P 原本的出游计划取消.失望的小 P 只能留在西西艾弗岛上度过一个略显单调的假期--直到-- 某天,小 P 获得了一张神秘的藏 ...
- 【CCF CSP】【Python】【201903-1】小中大
[CCF CSP][Python][201903-1] 小中大 题目要求 代码实现 主要方法 提交验证 题目要求 代码实现 1.初始版(又名完全原创版.欠优化版.无法体现"人生苦短,我用PY ...
- 参加CCF CSP认证者须知
发布单位:中国计算机学会 发布时间:2014-11-11 15:06 凡有意参加CCF CSP认证者,请在cspro.org网站上注册.报名.缴费.打印准考证,参加认证后可以在网站查询 ...
- CCF CSP 行车路线 java 201712_4
CCF CSP 行车路线 java 201712_4 问题描述 小明和小芳出去乡村玩,小明负责开车,小芳来导航. 小芳将可能的道路分为大道和小道.大道比较好走,每走1公里小明会增加1的疲劳度.小道不好 ...
- CCF CSP认证考试在线评测系统
关于CCF CSP认证考试在线评测系统 CCF CSP认证考试简介 CCF是中国计算机学会的简称.CCF计算机软件能力认证(简称CCF CSP认证考试)是CCF于2014年推出,是CCF计算机职业资格 ...
最新文章
- 提高C++性能的编程技术笔记:总结
- anndroid ndk使用
- mysql中表名为关键字的处理方法
- 浅谈机器人产品落地全过程
- sql server如何输出排序序号_Group by中子查询order by排序失效问题分析
- 2135亿!2018 双11阿里数据库技术战报新鲜出炉
- s2sh删掉原本的s2sh project capabilities后重新添加它们
- Codeforces D - High Load
- GB28181系统设计(四)-横向扩展和纵向扩展
- QQ for Linux启动闪退问题
- M1芯片的Mac电脑如何进入到恢复模式?
- Ubuntu下挂载Windows分区
- gflags使用详解
- Go语言在大数据时代应用前景
- kernelbase故障模块_错误模块名称: KERNELBASE.dll
- 微信小程序之头像裁剪,添加字幕,生成新图片下载等 解决真机调试和开发者工具 图片不显示等问题
- linux设置apn脚本apn,LINUX 4G pppd接入点设置
- 【容器】Podman容器快速上手
- Spring中的事务控制(Transacion Management with Spring)
- qlv如何转换为mp4格式?怎样将qlv转换成mp4格式?
热门文章
- java 服务器读取客户端文件,java 服务器读取客户端文件
- android让一个控件跟上面控件对其,学个明白--Android控件架构
- android studio闪退代码不报错_代码不报错,不代表真的没错
- 南岸焊接机器人厂_造船三部高效焊接工艺技术年鉴
- c++ 从 string 到 short
- arduino 机器视觉编程_万物皆可仿真的MATLAB/Simulink神奇在哪?解析如何将其应用于一整套机器人设计开发流程...
- 《MySQL 8.0.22执行器源码分析(3.1)关于RowIterator》
- leetcode 51. N 皇后 思考分析
- java 检查目录是否存在_如何检查Java目录是否存在?
- android对象缓存,Android简单实现 缓存数据