最大的矩形纸片

最大矩形面积问题——单调栈法 最大矩形面积问题——单调栈法 文章目录最大矩形面积问题——单调栈法直方图最大矩形面积分析单调栈法过程示例代码示例矩阵中最大的矩形分析代码示例 直方图最大矩形面积 题目地址 给定非负整数数组 heights ,数组中的数字用来表示柱状图中各个柱子的高度。每个柱子彼此相邻,且宽度为 1 。 求在该柱状图中,能够勾勒出来的矩形的最大面积。 示例1 输入:heights = [2,1,5,6,2,3] 输出:10 解释:最大的矩形为图中红色区域,面积为 10 示例2 输入: heights = [ 阅读详情

一张半边参差不齐的网格纸(网格边长均为1),有一边是完整没有破损的。现要从中剪出一片面积最大的矩形纸片。
给定网格纸中完整边的长度N,以及网格中每一列残存部分的高度,输出能够剪出的最大矩形纸片面积。
第一行输入一个正整数N,表示纸片完整边的长度。
第二行输入N个正整数,表示每列格子残存部分的高度,两个正整数之间用一个空格隔开。
输出一个正整数,表示能够剪出的最大矩形纸片面积。
样例输入
6
3 2 1 4 5 2
样例输出
8


可以暴力实现:

依次遍历,每个idx查找高度>=该位置高度的相邻连续的idx的个数,打擂台mx = max (mx, 连续的个数 * idx的高度。

图例:

 mx = 3;

mx = 4;

 mx = 6;

注:紫色的5应为6

mx = 8;

mx = 8;

 

mx = 8;

输出8。

那怎么寻找呢?

左右查看,如果行,多一个可以连续的,否则就会被截断,就break了。

暴力代码:

#include <bits/stdc++.h>
#define int long long

using namespace std;

int n, mx;
int a[1000009];
int b[1000009];

signed main () {
	
	cin >> n;
	
	for (int i = 1; i <= n; i++)
		cin >> a[i];
	
	for (int i = 1; i <= n; i++) {
		b[i] = a[i];
		for (int j = i - 1; j >= 1; j--) {
			if (a[j] >= a[i]) b[i] += a[i];
			else break;
		}
		for (int j = i + 1; j <= n; j++) {
			if (a[j] >= a[i]) b[i] += a[i];
			else break;
		}
		mx = max (mx, b[i]);
	}
	
	cout << mx;
	
	return 0;
}
信奥题解:最大矩形纸片——单调栈的特点及示例分析 十四届蓝桥杯省赛第四题"最大矩形纸片"。本文先介绍什么是单调栈,然后用一个简单的示例进行分析以加强理解,最后以"最大矩形纸片"为案例,分析多种不同的实现。 阅读详情

相关推荐

C++蓝桥杯真题(题目+解析+流程图)(特殊运算符+四叶玫瑰数+质因数的个数+最大的矩形纸片+数字游戏+活动人数)

蓝桥杯省赛C++题目分析 1. 特殊运算符 题目描述 输入描述 输出描述 输入输出样例 正确代码 错误代码 分析 流程图 2. 四叶玫瑰数 题目描述 输入描述 输出描述 输入输出样例 正确代码 错误代码 分析 流程图 3. 质因数的个数 题目描述 输入描述 输出描述 输入输出样例 正确代码 错误代码 分析 流程图 4. 最大的矩形纸片 题目描述 输入描述 输出描述 输入输出样例 正确代码 错误代码 分析 流程图 5. 数字游戏 题目描述 输入描述 输出描述 输入输出样例 正确代码 错误代码 分析 流程图 6

Rachelhi的博客 1313

c++最大的矩形纸片

给定网格纸中完整边的长度N(1≤N≤1000000),以及网格中每一列残存部分的高度(1≤高度≤10000),输出能够剪出的最大矩形纸片面积。一张半边参差不齐的网格纸(网格边长均为1),有一边是完整没有破损的。现要从中剪出一片面积最大的矩形纸片。第二行输入N个正整数(1≤正整数≤10000),表示每列格子残存部分的高度,两个正整数之间用一个空格隔开。第一行输入一个正整数N(1≤N≤1000000),表示纸片完整边的长度。输出一个正整数,表示能够剪出的最大矩形纸片面积。

M1stic的博客 1372

蓝桥杯第十四届省赛真题源码

蓝桥杯第十四届省赛真题源码 https://blog.youkuaiyun.com/weixin_53050357/article/details/130043887#comments_28655100 配合蓝桥杯嵌入式第十四届省赛程序真题,真题分析与代码讲解一起学习更好哦。

CCF认证 201312-3:最大的矩形(C++)

#include<iostream> #include<cstdio> #include<cstring> #include<algorithm> #include<cmath> using namespace std; const int N=1000; int main(){ int n,i,j,a[N]; long long...

咸鱼4号 965

windchill安装搭建(保姆式)

保姆式搭建windchill 材料准备 Vmware工具,用来创建和打开虚拟机的工具 安装系统的镜像文件 数据库安装文件,这里是Oracle数据库 Windchill的安装包 Vmware工具,用来安装和打开虚拟机的软件 Windowsserver2008的镜像工具,用来安装虚拟机环境的系统,如果你有win2007或win2010的也可以,在做虚拟机时,需要先安装系统。 Oracle数据库安装包 Windchill11M030的安装包 (安装包如有需要可以私信邮箱发送) 虚拟机安装 安装虚拟机VMware

tr1294937662的博客 6218

Python的WNTR库---基于供水网络

WNTR使用小结(一) 本人最近主要再做设施网络的内容,主要聚焦供水管网(water distribution network,WDN),在做实验中主要用的包为WNTR,下载连接: 链接: WNTR.最好安装最新版本 如果有做这方面研究的小伙伴们需要测试数据可以直接从WNTR实例数据中下载,其中提供了四种规模大小的管网,格式为.inp,可以搭配Epanet使用。如果需要更多示例数据可私信我! 以下内容全部为本人自己探索的小心得,希望能给你带来一点点帮助,如果不够详尽可以自行参阅官方文档:链接: 官方文档.

pushhy的博客 4934

最大矩形纸片

给定网格纸中完整边的长度N(1≤N≤1000000),以及网格中每一列残存部分的高度(1≤高度≤10000),输出能够剪出的最大矩形纸片面积。第二行输入N个正整数(1≤正整数≤10000),表示每列格子残存部分的高度,两个正整数之间用一个空格隔开。一张半边参差不齐的网格纸(网格边长均为1),有一边是完整没有破损的。第一行输入一个正整数N(1≤N≤1000000),表示纸片完整边的长度;可以发现,沿着红色框可以剪出的矩形纸片面积最大,为8,所以输出8.输出一个正整数,表示能够剪出的最大矩形纸片面积。

lindan5563的博客 655

LinuxMint 22.1(Ubuntu24.04)下通过Wine完美运行同花顺远航版的实战指南

本文详细介绍了在LinuxMint 22.1(Ubuntu24.04)系统下通过Wine完美运行同花顺远航版的实战指南。从基础环境准备到深度优化,包括Wine环境配置、同花顺远航版安装、字体显示调优、任务栏兼容性修复等关键步骤,帮助Linux用户高效使用同花顺远航版进行股票交易和行情分析。

weixin_30919429的博客 571

千千蓝鲸8902 最大的矩形纸片

最大的矩形纸片一张半边参差不齐的网格纸 (网格边长均为 1 ),有一边是完整没有破损的。现要从中剪出一片面积最大的矩形纸片。给定网格纸中完整边的长度 N(1≤N≤1000000),以及网格中每一列残存部分的高度 (1<=高度<=10000),输出能够剪出的最大矩形纸片面积。例如: N=6,每一列残存部分的高度依次为 3、2、1、4、5、2,如下图所示:可以发现,沿着红色框可以剪出的矩形纸片面积最大,为 8,所以输出 8。输入描述。

gyvfhv的博客 809

快速理解STLink引脚图中复位引脚作用

深入讲解STLink引脚图中复位引脚的实际用途,帮助开发者快速掌握其在调试与下载过程中的关键作用,结合stlink引脚图理解更高效。

weixin_32324637的博客 1326

openclaw本地模型对接

使用是官方推荐的一种集成方式,它可以简化配置过程。但由于您的系统环境和之前复杂的配置历史,我为您梳理了一个核心流程,并增加了关键的“事后检查”步骤,以确保能从根本上解决问题。

suny8的专栏 2463

黑白纸片题解:从二维矩阵到单调栈,最大全黑矩形面积详解

在算法与数据结构中,单调栈是处理区间极值与最大面积问题的经典技巧;将二维矩阵按行扫描转化为一维直方图,则是求解矩阵区域问题的核心建模思路。通过高度数组统计每列连续黑色纸片的数量,再借助单调栈在线性时间内计算直方图的最大矩形面积,即可高效得到最大全黑矩形的面积。这种方法不仅适用于“黑白纸片”这类笔试题,也广泛覆盖 LeetCode 上矩形面积、接雨水、最大正方形等高频考题,同时是春招笔试中常见的优化方向。以顺丰春招原题“黑白纸片”为例,从暴力枚举的复杂度分析入手,逐步推演到单调栈解法,并给出 Java、C++

weixin_29973493的博客 245

ESD防护设计宝典(十):RE(辐射发射)超标问题排查与解决

RE测试是EMC认证的“头号杀手”。当屏幕上出现一根根超标频谱线时,如何快速定位元凶并有效整改?本讲将带你化身电磁侦探,完成一次完美的RE问题“缉凶”。

m0_56451176的博客 395

[ZJOI2007]棋盘制作

国际象棋是世界上最古老的博弈游戏之一,和中国的围棋、象棋以及日本的将棋同享盛名。 据说国际象棋起源 于易经的思想,棋盘是一个88大小的黑白相间的方阵,对应八八六十四卦,黑白对应阴阳。 而我们的主人公小Q, 正是国际象棋的狂热爱好者。作为一个顶尖高手,他已不满足于普通的棋盘与规则,于是他跟他的好朋友小W决定将棋盘扩大以适应他们的新规则。 小Q找到了一张由NM个正方形的格子组成的矩形纸片,每个格子被涂有黑白两种颜色之一。小Q想在这种纸中裁减一部分作为新棋盘,当然,他希望这个棋盘尽可能的大。 不过小Q还没有决定是

水蛙菌 1万+

C++ PCL点云处理实战专栏

工业级点云处理技术学习资源,涵盖电力、建筑、隧道等领域的实战案例。内容分为三阶段:代码原理(算法认知)、动态库(项目验证)和完整代码(定制开发)。

weixin_45196569的博客 1120

SAP Fiori Elements 扩展实战:UI 层扩展、OData 服务扩展、CDS 视图增强及全流程案例

UI 层扩展主要关注在不修改标准生成界面的基础上,自定义用户界面元素和交互逻辑。典型需求包括:在现有 Fiori Elements 界面上添加新的字段(如表格列或表单项)、增加自定义按钮并绑定操作、以及通过控制器扩展加入事件处理等。无论在 RAP 还是传统 BOPF 架构下,前端 UI 扩展通常采用 SAPUI5 提供的**扩展点(Extension Points)和控制器扩展(Controller Extension)**机制来安全地插入自定义代码。下面分别说明两种后端架构下 UI 扩展的实现方式。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 905

打卡信奥刷题(2828)用C++实现信奥题 B4273 [蓝桥杯青少年组省赛 2023] 最大的矩形纸片

摘要:题目要求从参差不齐的网格纸中剪出最大矩形纸片,给定完整边长度N和每列高度。通过遍历所有可能的矩形区间,计算每个区间的最小高度和面积,记录最大值。C++实现采用三重循环,时间复杂度较高(O(n³)),适用于小规模数据。后续将持续分享算法题解和比赛心得。

Loge谈信奥--一个专注于信奥人的博客 382

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

清北学堂 青春

青春【问题描述】现在有一个被1× 1的小格子分割的矩形纸片,每个小格子内包含一个整数。现在你可以进行一系列的折叠, 每次折叠的折痕必须是分割两行或者两列小格子的分割线。在折叠完之后,所有重叠的小格子被看作一个单独的格子,并且这个格子的价值为重叠的小格子的价值和。你想要知道,在所有可能得到的新格子中,格子价值的最大值为多少。【输入格式】输入文件的第一行有两个整数?和?,分别表示初始的矩形纸片的长和宽...

weixin_30387339的博客 130

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

纸片折叠

【题目描述】 现有一张被1*1的小格子分割的矩形纸片,每个小格子内包含一个整数。 现在可以进行一系列的折叠,每次折叠的折痕必须为分割两行或两列小格子的分割线。 折叠完毕后,所有重叠的小格子将被看作一个单独的格子,并且这个格子的价值为重叠的小格子的价值和。 现询问,在所有可能得到的新格子中,格子价值的最大值为多少。 【输入描述】 第一行输入两个整数N和M,分别表示初始矩形纸片的长和宽; ...

weixin_30662109的博客 140

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

【BZOJ 1057】 1057: [ZJOI2007]棋盘制作

1057: [ZJOI2007]棋盘制作 Description   国际象棋是世界上最古老的博弈游戏之一,和中国的围棋、象棋以及日本的将棋同享盛名。据说国际象棋起源 于易经的思想,棋盘是一个8*8大小的黑白相间的方阵,对应八八六十四卦,黑白对应阴阳。而我们的主人公小Q, 正是国际象棋的狂热爱好者。作为一个顶尖高手,他已不满足于普通的棋盘与规则,于是他跟他的好朋友小W...

weixin_30326745的博客 71

hi.棋盘制作

国际象棋是世界上最古老的博弈游戏之一,和中国的围棋、象棋以及日本的将棋同享盛名。据说国际象棋起源于易经的思想,棋盘是一个8×8大小的黑白相间的方阵,对应八八六十四卦,黑白对应阴阳。而我们的主人公小Q,正是国际象棋的狂热爱好者。作为一个顶尖高手,他已不满足于普通的棋盘与规则,于是他跟他的好朋友小W决定将棋盘扩大以适应他们的新规则。小Q找到了一张由N×M个正方形的格子组成的矩形纸片,每个格子被涂有黑白两种颜色之一。小Q想在这种纸中裁减一部分作为新棋盘,当然,他希望这个棋盘尽可能的大。不过小Q。

Pretty Boy Fox的博客 1880

bzoj1057: [ZJOI2007]棋盘制作 [dp][单调栈]

Description   国际象棋是世界上最古老的博弈游戏之一,和中国的围棋、象棋以及日本的将棋同享盛名。据说国际象棋起源 于易经的思想,棋盘是一个8*8大小的黑白相间的方阵,对应八八六十四卦,黑白对应阴阳。而我们的主人公小Q, 正是国际象棋的狂热爱好者。作为一个顶尖高手,他已不满足于普通的棋盘与规则,于是他跟他的好朋友小W决定 将棋盘扩大以适应他们的新规则。小Q找到了一张由N*M个...

weixin_30306905的博客 81

[ZJOI2007]棋盘制作 悬线法

题目描述 国际象棋是世界上最古老的博弈游戏之一,和中国的围棋、象棋以及日本的将棋同享盛名。据说国际象棋起源于易经的思想,棋盘是一个 8×88 \times 8 8×8大小的黑白相间的方阵,对应八八六十四卦,黑白对应阴阳。 而我们的主人公小Q,正是国际象棋的狂热爱好者。作为一个顶尖高手,他已不满足于普通的棋盘与规则,于是他跟他的好朋友小W决定将棋盘扩大以适应他们的新规则。 小Q找到了一张由...

loooooog的博客 227

1057: [ZJOI2007]棋盘制作

1057: [ZJOI2007]棋盘制作 Time Limit: 20 Sec  Memory Limit: 162 MB Submit: 1984  Solved: 1003 [Submit][Status][Discuss] Description 国际象棋是世界上最古老的博弈游戏之一,和中国的围棋、象棋以及日本的将棋同享盛名。据说国际象棋起源于易经的思想,棋盘是一个8*8大小的

CRZbulabula的博客 416

lightoj1297(二分查找,或求导)

lightoj1297(二分查找,或求导) Submit Status Practice LightOJ 1297 Description In the following figure you can see a rectangular card. The width of the card is W and length of the card is L

hpulw 575
上一篇: 洛谷 会员尊享
下一篇: 优先队列,到底哪个是大顶,哪个是小顶
Runcode8
博客等级 码龄4年 180粉丝 56原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值