CSP认证刷题笔记(3)最大矩形(13年CSP认证第三题)

news2025/1/19 11:37:24

文章目录

    • 题目描述
    • 基本思路
    • 求解代码

题目描述

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

基本思路

通过题目的描述可知,最大矩形的高度一定是某个直方的高度,其宽度是该直方两边高度小于等于该直方的直方数量(包括该直方自己)。因此,可以通过枚举的方式来实现。

求解代码

#include<iostream>
#include<cstring>
#include<algorithm>
using namespace std;

int n;
const int N = 1010;
int h[N];
int max_area = 0;

inline int find_min(int start_pos,int rectangle_count)
{
    int min = h[start_pos];
    int end_pos = start_pos + rectangle_count;
    for(int i(start_pos + 1);i < end_pos; ++i)
    {
        if(h[i]<min)
        {
            min = h[i];
        }
    }
    return min;
}

int main(void)
{
    cin >> n;
    for(int i(0);i<n;++i)
    {
        cin >> h[i];
    }
    
    for(int rectangle_count(1);rectangle_count <= n;++rectangle_count)
    {
        int end_pos = n - rectangle_count + 1;
        for(int start_pos(0);start_pos < end_pos;++start_pos)
        {
            int area = find_min(start_pos,rectangle_count) * rectangle_count;
            if(area > max_area)
            {
                max_area = area;
            }
        }
    }
    cout << max_area << endl;
    return 0;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1682316.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

聚苯并咪唑(PBI)为超高性能工程塑料 未来应用前景较好

聚苯并咪唑&#xff08;PBI&#xff09;为超高性能工程塑料 未来应用前景较好 聚苯并咪唑&#xff08;简称PBI&#xff09;&#xff0c;是一类以苯并咪唑基团作为结构重复单元的杂环聚合物。聚苯并咪唑不溶于水&#xff0c;溶于强极性溶剂&#xff0c;具有耐高温、耐腐蚀、抗辐…

学习C语言的重要性以及如何学好

配套视频&#xff1a;https://www.bilibili.com/video/BV1kw4m1Q7AV/?spm_id_from333.999.0.0 一、C语言在互联网领域重要的开源项目 https://github.com/mysql/mysql-server 数据库开源项目【互联网重型开源项目】 编程语言&#xff1a;C/C/ASM 部分汇编代码 开源项目核心…

Verilog基础语法——条件语句if-else与case

Verilog基础语法——条件语句case、if-else 写在前面一、if-else语句二、case语句2.1 case语句2.2 casez语句2.3 casex语句 写在后面 写在前面 在Verilog语法中&#xff0c;常用的条件语句有if-else语句和case语句&#xff0c;用于判断条件是否为真&#xff0c;并执行判断条件后…

使用docker安装doccano

使用docker安装doccano 1 介绍 数据标注的工具比较多&#xff0c;比较出名的有Doccano、Label Studio等。 Label Studio &#xff1a;图像标注、文本标注、音频标注、视频标注、时间序列标注&#xff0c;功能比较多。 Doccano&#xff1a;主要是针对文本的标注&#xff0c;…

平芯微PW4057H中文规格书

产品概述&#xff08;百度翻译&#xff09; PW4057H 是可以通过外部电阻编程的恒流/恒压充电的充电管理电路。该器件内部包括功率晶体管应用时不需要外部的电流检测电阻和阻流二极管。 PW4057H 只需要极少的外围元器件&#xff0c;并且符合 USB 总线技术规范&#xff0c;非常适…

英睿达硬盘数据恢复方法:从丢失到找回的详细指南

在数字化时代&#xff0c;硬盘作为我们存储重要数据的关键设备&#xff0c;承载着大量的个人、工作甚至商业信息。然而&#xff0c;无论是由于意外删除、格式化、病毒感染还是硬件故障&#xff0c;硬盘数据丢失的情况时有发生。英睿达硬盘作为市场上的知名品牌&#xff0c;其数…

后仿真中的必懂VCS仿真选项之 +ignorempcond

当多个输入同时改变时&#xff0c;VCS支持延迟注释。它忽略条件检查&#xff0c;并从适用的延迟中插入最小的延迟。 当多个输入同时改变时&#xff0c;它们会对特定的输出信号产生影响。 如果没有匹配的条件弧线从输入(切换)延伸到输出&#xff0c;那么VCS不会标注零延迟。 …

ITSM的服务台如何让工作更流畅

在现代企业的信息技术管理框架内&#xff0c;IT服务管理&#xff08;IT Service Management, ITSM&#xff09;体系扮演着至关重要的角色&#xff0c;而其中的服务台则是这一复杂体系的心脏地带。服务台不仅仅是解答技术疑问的一线窗口&#xff0c;更是企业IT运维效率与用户满意…

STM32_IIC通信

IIC通信 • I2C&#xff08;Inter IC Bus&#xff09;是由Philips公司开发的一种通用数据总线 • 两根通信线&#xff1a;SCL&#xff08;串行时钟线&#xff09;、SDA&#xff08;串行数据线&#xff09; • 同步&#xff0c;半双工 • 带数据应答 • 支持总线挂载多…

C++ 程序员常用的VScode的插件

vscode中好用的插件 Better CommentsBookmarksC/C ThemeChinese (Simplified) (简体中文) Language Pack for Visual Studio CodeclangdClang-FormatCodeLLDBCMakeCMake ToolsCode RunnerCode Spell CheckerCodeSnapColor Highlightvscode-mindmapDraw.io IntegrationError Len…

VirtualBox虚拟机串口通信

主机&#xff1a;Win11 VirtualBox: 7.0 两台Guest虚拟机: CentOS 现在希望两台CenOS虚拟机能通过串口通信。 设置前先关闭两台虚拟机。 设置方式就是在VirtualBox的设置里面设置串口&#xff0c;需要注意的是其中一台不勾选“连接至现有通道或套接字”&#xff0c;另外一…

分享我经常用的一个图片下载插件,不会写爬虫代码也能随意下载图片

更多精彩内容在公众号。 ImageAssistant&#xff08;图片助手&#xff09;是一款专为Chrome浏览器设计的扩展程序&#xff0c;它具备强大的网页图片处理功能。以下是关于ImageAssistant的一些主要特点和功能&#xff1a; 批量下载图片&#xff1a;ImageAssistant的核心功能之一…

什么是蜜罐,在当前网络安全形势下,蜜罐能提供哪些帮助

在当前的互联网时代&#xff0c;网络安全威胁日益严峻&#xff0c;攻击手段层出不穷。为了应对这些威胁&#xff0c;网络安全专家们不断探索新的防御手段&#xff0c;在过去的几年里&#xff0c;一种更加积极主动的网络安全方法正在兴起。蜜罐技术便是这样一种备受瞩目的主动防…

GPT大模型不再遥不可及:本地化部署让每个人都能拥有

本地化部署是GPT发展的一个趋势。 本地化部署指的是将大模型部署在用户自己的设备上&#xff0c;而不是依赖于云服务商提供的接口。本地化部署有以下几个优势&#xff1a; 数据完全私有化&#xff0c;降低数据丢失和泄露风险&#xff0c;对数据安全性和私密性有保障。 降低使…

uniapp微信小程序使用vscode代替HBuilderX开发uniapp微信小程序并且vscode改动代码微信开发者工具能实时更新

前言 最近公司开发新的小程序项目&#xff0c;经调研综合所有人员考虑&#xff0c;用uni-app Vue3tsvite技术栈开发&#xff1b;而官方推荐使用HBuilderX开发&#xff0c;而考虑到目前公司所有前端人员对VsCode更熟悉&#xff0c;故此总结了一下uniapp项目使用vscode代替HBuild…

【Python探索之旅】字典

字典的基本特性 创建字典 修改字典 添加键值对 删除键值对 字典方法 遍历字典 完结撒花​ 前言 字典是 Python 中内建的一种具有弹性储存能力的数据结构&#xff0c;可存储任意类型对象&#xff0c;与序列使用整数索引不同&#xff0c;它使用键(key)进行索引。 通常任何不…

Lazyboy品牌发布会“球幕气膜”

Lazyboy品牌发布会“球幕气膜”为品牌活动提供了一个独特、现代化、环保的展示空间。这座球幕气膜不仅为发布会提供了一个视觉震撼的场地&#xff0c;也为与会嘉宾带来了全新的体验。作为轻空间&#xff08;江苏&#xff09;膜科技有限公司&#xff08;以下简称“轻空间”&…

微信自主创建表单投票小程序源码系统 带充值刷礼物功能 附带源代码以及完整的安装部署教程

系统概述 本小程序实现的核心功能包括&#xff1a;用户注册登录、表单提交投票、查看投票结果、在线充值以及赠送礼物等。其中&#xff0c;投票表单可以根据实际需求进行自定义设置&#xff0c;满足不同类型的调查或评选活动。同时&#xff0c;通过引入第三方支付接口&#xf…

PyQt5实现PDF预览

PyQt不支持PDF预览的&#xff0c;为了解决这个问题&#xff0c;本文思路是&#xff1a;想将PDF生成长图片&#xff0c;让后PyQt加载长图片达到预览效果。 步骤 1: PDF生成长图片程序 import fitz # PyMuPDF from PIL import Imagedef pdf_to_long_image(pdf_path, output_pa…

pytorch-8 单层神经网络及激活函数

一、单层回归网络:线性回归 1. tensor手动实现单层回归神经网络的正向传播 # tensor手动实现单层回归神经网络的正向传播 import torch from torch.nn import functional as FX = torch.tensor([[1,0,0],[1,1,0],[1,0,1],[1,1,1]], dtype = torch.float32) # 特征张量 w =…