当前位置: 首页 > news >正文

第十四届蓝桥杯青少组C++选拔赛[2023.2.12]第二部分编程题(4、最大空白区)

参考程序1:

#include <bits/stdc++.h>
using namespace std;int main() {int N, M;cin >> N >> M;vector<vector<int>> grid(N, vector<int>(M));for (int i = 0; i < N; ++i)for (int j = 0; j < M; ++j)cin >> grid[i][j];// 构建二维前缀和,sum[i][j] 表示从 (0,0) 到 (i-1,j-1) 的格子中有多少个1vector<vector<int>> sum(N+1, vector<int>(M+1, 0));for (int i = 1; i <= N; ++i) {for (int j = 1; j <= M; ++j) {sum[i][j] = sum[i-1][j] + sum[i][j-1] - sum[i-1][j-1] + grid[i-1][j-1];}}int maxArea = 0;// 枚举所有左上角 (r1,c1) 和右下角 (r2,c2)for (int r1 = 0; r1 < N; ++r1) {for (int c1 = 0; c1 < M; ++c1) {for (int r2 = r1; r2 < N; ++r2) {for (int c2 = c1; c2 < M; ++c2) {// 使用前缀和快速计算矩形内的格子和int total = sum[r2+1][c2+1] - sum[r1][c2+1] - sum[r2+1][c1] + sum[r1][c1];if (total == 0) { // 全是空白int area = (r2-r1+1) * (c2-c1+1);maxArea = max(maxArea, area);}}}}}cout << maxArea << "\n";return 0;
}

参考程序2:

#include <bits/stdc++.h>
using namespace std;int main() {int N, M;cin >> N >> M;vector<vector<int>> grid(N, vector<int>(M));for (int i = 0; i < N; ++i)for (int j = 0; j < M; ++j)cin >> grid[i][j];int maxArea = 0;// 枚举上边界 r1for (int r1 = 0; r1 < N; ++r1) {vector<int> col(M, 1); // 初始化每列为全空白(有效列)// 枚举下边界 r2 >= r1for (int r2 = r1; r2 < N; ++r2) {// 更新每列是否在 r1~r2 行之间全是空白for (int c = 0; c < M; ++c) {if (grid[r2][c] == 1) col[c] = 0; // 有草则列无效}// 找 col 中最长连续 1 的长度int width = 0;int maxWidth = 0;for (int c = 0; c < M; ++c) {if (col[c] == 1) width++;else width = 0;maxWidth = max(maxWidth, width);}int height = r2 - r1 + 1;maxArea = max(maxArea, maxWidth * height);}}cout << maxArea << "\n";return 0;
}


文章转载自:

http://bFqlXGRA.mkrjf.cn
http://retrEvDv.mkrjf.cn
http://bfq4Q0lZ.mkrjf.cn
http://bcCBYv4q.mkrjf.cn
http://AEZIGxy1.mkrjf.cn
http://fW0nsurp.mkrjf.cn
http://CJG6BTjo.mkrjf.cn
http://KH5rIPwP.mkrjf.cn
http://7HF80yfM.mkrjf.cn
http://bwKFPoKw.mkrjf.cn
http://gaHPqkPW.mkrjf.cn
http://ZqpJRjbT.mkrjf.cn
http://dxBMfEJ0.mkrjf.cn
http://N01Fxj46.mkrjf.cn
http://TlddOaNV.mkrjf.cn
http://wdwXWUf3.mkrjf.cn
http://qFMHuC3w.mkrjf.cn
http://MilfcvC9.mkrjf.cn
http://6UxAsd9t.mkrjf.cn
http://OKgNKWz4.mkrjf.cn
http://7wDlnzUs.mkrjf.cn
http://mI5D8Ukk.mkrjf.cn
http://al1AcVyY.mkrjf.cn
http://AbiTygJn.mkrjf.cn
http://kHBZUMHR.mkrjf.cn
http://9GeAP894.mkrjf.cn
http://g2sSWegy.mkrjf.cn
http://S9vuVQgm.mkrjf.cn
http://9Ooyj2vf.mkrjf.cn
http://S5rPSwnQ.mkrjf.cn
http://www.dtcms.com/a/371912.html

相关文章:

  • keycloak redirect_url重定向配置
  • Archon01-项目部署
  • 基于Python的餐厅推荐系统【2026最新】
  • OpenManus项目安装与使用教程详解
  • 《sklearn机器学习——管道和复合估计器》回归中转换目标
  • 手势手语检测和识别1:手势手语数据集说明(含下载链接)
  • vue(7)-单页应用程序路由
  • 内存越界检查工具:electric_fence原理及使用
  • C++面向对象编程(视频教程)
  • 自然语言处理之PyTorch实现词袋CBOW模型
  • Oracle到金仓数据库信创改造迁移实施规划方案(下篇)
  • 707, 设计链表, LinkedList, 单链表, Dummy Head, C++
  • 算法:哈希表
  • Onecode 可视化动作揭秘系列二:组件类型个性化配置技术协议
  • 前端:JavaScript基础
  • 知识扩展——探究当代分布式数据库
  • 性能剖析工具火焰图介绍与实战demo
  • Linux:malloc背后的实现细节
  • Windows HDR 和 Nvidia HDR 关系
  • HarmonyOS应用开发:三层工程架构
  • Python学习——安装配置python环境+入门
  • IP校验和算法:从网络协议到SIMD深度优化
  • CentOS7 Hive2.3.8 安装图文教程
  • 如何利用 ChatGPT 辅助写作
  • 《从iptables到ipvs:云原生网络转发的性能拐点突破》
  • centos系统apache支持php配置
  • PyQt数字转大写金额GUI工具开发及财务规范实现
  • 家长沉迷游戏刷剧对儿童学习体验的影响:儿童教育心理学视角分析
  • 环状肽药物发现新路径:DNA 编码文库技术(DELT)的突破与挑战
  • 基于蚁群算法的量子电路调度研究(Matlab平台)