P4147 玉蟾宫(最大子矩形)

news/2025/10/12 9:50:13/文章来源:https://www.cnblogs.com/Zhangshujun/p/19136283

思路

可以利用悬线法,处理对于每个点在高度为 \(h\) 时的左右边界,然后随着高度增加,这个边界表示的范围一定是单调不增的,但是高度又在增加,所以一直取 \(max\) 就对了

最后注意输出答案的三倍
\(C++\) \(AC\) \(Code:\)

#include<bits/stdc++.h>
using namespace std;
const int MAXN = 1e3 + 5;
int l[MAXN][MAXN], r[MAXN][MAXN], h[MAXN][MAXN]; //分别存放位于点 (i, j) 时的高度为 h 的 左右边界
char mapp[MAXN][MAXN];
int n, m;
void init() {for (int i = 1; i <= n; ++i)for (int j = 1; j <= m; ++j)l[i][j] = r[i][j] = j, h[i][j] = 1; // 初始化边界为自身,高度为1
}
int main() {cin >> n >> m;for (int i = 1; i <= n; ++i)for (int j = 1; j <= m; ++j)cin >> mapp[i][j];init();for (int i = 1; i <= n; ++i) {for (int j = 2; j <= m; ++j)if (mapp[i][j] == 'F' && mapp[i][j - 1] == 'F')l[i][j] = l[i][j - 1]; // 尝试向左扩展边界for (int j = m - 1; j >= 1; --j)if (mapp[i][j] == 'F' && mapp[i][j + 1] == 'F')r[i][j] = r[i][j + 1]; // 尝试向右扩展边界}int ans = 0;for (int i = 1; i <= n; ++i)for (int j = 1; j <= m; ++j) {if (mapp[i][j] == 'R')continue;if(mapp[i - 1][j] == 'F') { // 更新高度增加时的左右边界h[i][j] = h[i - 1][j]  + 1;l[i][j] = max(l[i][j], l[i - 1][j]);r[i][j] = min(r[i][j], r[i - 1][j]);}ans = max(ans, (r[i][j] - l[i][j] + 1) * h[i][j]); // 求面积最大值}cout << ans * 3;return 0;
}

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

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

相关文章

【实录】应用 Verdaccio 从零搭建私有 npm 仓库(含完整步骤及避坑指南)

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

CentOS 7 安装 bzip2-libs-1.0.6-13.el7.x86_64.rpm 的详细步骤

CentOS 7 安装 bzip2-libs-1.0.6-13.el7.x86_64.rpm 的详细步骤​它是 ​CentOS 7 系统里的一个 ​基础库文件包​(名字叫 bzip2-libs),主要作用是为其他需要压缩/解压功能的软件(比如 bzip2命令行工具或其他依赖它…

2025 年 10 月西安房屋鉴定公司最新推荐排行榜:覆盖房屋安全评估、结构检测、承载力鉴定、危房鉴定领域,助您选专业机构

随着房地产行业不断发展,房屋安全成为民众与企业关注的重点,房屋鉴定作为保障房屋安全的核心环节,其重要性愈发凸显。但当前行业内存在诸多问题,部分机构资质不全、技术团队专业度不足、仪器设备落后,还有些服务流…

完整教程:HAProxy 完整指南:简介、负载均衡原理与安装配置

完整教程:HAProxy 完整指南:简介、负载均衡原理与安装配置pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Conso…

单片机学习日记 - 详解

单片机学习日记 - 详解pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", &quo…

金铲铲明星学生2触发条件

金铲铲明星学生2触发条件需要2个不同学院棋子吃果实,都吃到明星学生果实,上场后,触发明星学生2。 1:2:3:-

GESP C++5级 2025年6月编程2题解:最大公因数 - 教程

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

阿里发布「夸克 AI 眼镜」:融合阿里购物、地图、支付生态;苹果拟收购计算机视觉初创 Prompt AI丨日报

这里是 「RTE 开发者日报」,每天和大家一起看新闻、聊八卦。我们的社区编辑团队会整理分享 RTE(Real-Time Engagement) 领域内「有话题的技术」、「有亮点的产品」、「有思考的文章」、「有态度的观点」、「有看点的…

在AI技术唾手可得的时代,挖掘新需求成为制胜关键——某知名AI聊天框架需求探索

本文基于某知名开源AI聊天框架的文档和用户反馈,深入分析其核心功能特性及应用场景,并挖掘用户提出的潜在新需求,为项目未来发展提供参考方向。a.内容描述核心功能定位:该项目是一个开源AI聊天机器人框架,集成了多…

数论学习之路

完成今日份数论大学习 (是/否)如果不太影响理解与运用的证明 或是我不会的证明 就都不计喽 关于数论分块我就不想写了感觉比较基础线性筛 先来说线性筛 一篇推荐的博客 可 \(O(n)\) 预处理积性函数 常见用法:\(f(1)=1…

CSharp: Aspose.Cells 8.3.0 web excel Viewer

GroupDocsXslViewerGroupDocs.ViewerSupported formatsWord: DOCX, DOC, ODT, RTF, TXT.PowerPoint: PPTX, PPT, ODP.Excel: XLSX, XLS, ODS, Numbers, CSV.Fixed Page Layout: PDF, XPS.Graphics: CDR, DCM, AI, PSD.…

详细介绍:C# WinForms的入门级画板实现

详细介绍:C# WinForms的入门级画板实现2025-10-12 09:08 tlnshuju 阅读(0) 评论(0) 收藏 举报pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block …

【springboot的分页功能TableDataInfo,有时候需要艰难的分页实现,怎么办呢?】

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

生成式AI实现多模态信息检索技术突破

本文介绍了一种基于生成式AI的多模态信息检索框架GENIUS,通过语义量化和查询增强技术,直接生成数据ID代码而非传统向量比对,显著提升了检索效率。该方法在多项测试中性能提升22%-56%,解决了大规模数据集下的检索效…

在运维工作中,如何过滤某个目录在那边什么路径下面?

在 Linux 中,如果你想要查找某个特定目录位于哪个路径下(即查找目录的位置),可以使用以下几种常用的命令来“过滤”或搜索该目录。以下是几种最实用的方法:✅ 1. 使用 find 命令(最常用、最强大) find /path/to…

完整教程:安卓中,kotlin如何写app界面?

完整教程:安卓中,kotlin如何写app界面?pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "…

移动固态硬盘插入电脑后提示“应该格式化”或“文件系统损坏”如何修复?

移动固态硬盘插入电脑后提示“应该格式化”或“文件系统损坏”如何修复?pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family:…

PHP 15 个高效开发的小技巧

PHP 15 个高效开发的小技巧 在 PHP 开发中,你不需要依赖新框架也能显著提升效率。真正有用的是那些能节省时间、减少重复工作的小技巧。本文将介绍一些简单但强大的 PHP 技巧,帮助你编写更简洁、更健壮的代码。 原文…

AI元人文构想研究:人类拥抱AI的文明新范式

AI元人文构想研究:人类拥抱AI的文明新范式 摘要:本文提出"AI元人文"理论构想,旨在回应人工智能时代技术与人文价值深度融合的文明需求。该构想基于"价值能量系统"理论模型,通过"悟空之眼…

华为发布星河AI广域网解决方案,四大核心能力支撑确定性网络 - 详解

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …