尧图网站建设 尧图网络
  • 首页
  • 关于我们
  • 服务项目
  • 案例展示
  • 建站流程
  • 资讯中心
  • 联系我们
首页/资讯中心/详情

P1387 最大正方形

P1387 最大正方形
📅 发布时间:2026/6/19 12:23:06
点击查看代码
#include <iostream>
#include <algorithm>  // 用于 min/max 函数(本题可省略,但建议保留以适配更多场景)
using namespace std;const int MAX_SIZE = 105;  // 数组最大尺寸,适配 n/m ≤ 100 的输入
int s[MAX_SIZE][MAX_SIZE];  // 存储原始01矩阵(1-based索引,避免边界判断麻烦)
int a[MAX_SIZE][MAX_SIZE];  // 存储前缀和矩阵(同样1-based)
int n, m;  // 矩阵的行数和列数
int ans = 0;  // 记录最大全1正方形的边长,初始为0int main() {// 1. 输入矩阵大小和原始01矩阵cin >> n >> m;for (int i = 1; i <= n; ++i) {  // 1-based索引:i从1到n,j从1到mfor (int j = 1; j <= m; ++j) {cin >> s[i][j];  // 输入0或1}}// 2. 计算前缀和矩阵for (int i = 1; i <= n; ++i) {for (int j = 1; j <= m; ++j) {// 前缀和公式:当前格子值 + 左方前缀和 + 上方前缀和 - 左上重叠前缀和a[i][j] = s[i][j] + a[i][j-1] + a[i-1][j] - a[i-1][j-1];}}// 3. 枚举所有可能的正方形,用前缀和判断是否全1for (int i = 1; i <= n; ++i) {  // i:正方形右下角的行坐标(1-based)for (int j = 1; j <= m; ++j) {  // j:正方形右下角的列坐标(1-based)if (s[i][j] != 1) {  // 若当前格子是0,不可能作为正方形的右下角,直接跳过continue;}// 枚举正方形的边长k:从当前最大ans+1开始(更小的k无需考虑),直到边界允许// 边界条件:i-k ≥ 0 且 j-k ≥ 0 → 保证正方形左上角(i-k, j-k)在矩阵内(1-based下左上角为(i-k+1, j-k+1))for (int k = ans + 1; i - k >= 0 && j - k >= 0; ++k) {// 计算以(i,j)为右下角、边长为k的正方形内的元素和// 前缀和求子矩阵和公式:右下角和 + 左上角前一个和 - 上方和 - 左方和int sum = a[i][j] + a[i - k][j - k] - a[i - k][j] - a[i][j - k];if (sum == k * k) {  // 元素和等于k² → 所有元素都是1(因为每个元素是0或1)ans = k;  // 更新最大边长} else {break;  // 剪枝:当前k的正方形不是全1,更大的k会包含它,也不可能是全1}}}}// 4. 输出结果cout << ans << endl;return 0;
}
用前缀和去做,对边界的讨论很精准,有利于理解边界设置和三重循环的设置和遍历方式以及去重的方式

相关新闻

  • markdown的初级使用教程
  • 腾讯云服务器手动安装 Docker 记录:好记性不如烂笔头
  • 留学中介排行榜TOP10怎么选:看哪家申请更强

最新新闻

  • 宁波佳利达汽配抽油器系列推荐:抽油泵/电动抽油筒/手动抽油器专业制造 - 品牌推荐官
  • 2026日喀则卫生间免砸砖防水、楼顶漏水、外墙渗水、地下室阳光房渗漏;正规防水补漏公司免费上门,线上质保,售后无忧。房屋漏水不再愁,24小时一站式快速维修。 - 企业资讯
  • MC68020协处理器接口:CIR寄存器与响应原语机制详解
  • 京保通保安服务有限公司:校园医院厂区商场多场景安保服务优选 - 品牌推荐官
  • 孟州市行知塑业密胺餐具推荐:商用餐饮全场景解决方案供应商 - 品牌推荐官
  • 郑州黄金回收避雷指南,认准合扬不被商家偷偷扣克重 - 奢侈品回收评测

日新闻

  • 5分钟掌握Python进化算法:Geatpy高性能优化工具完全指南
  • Microchip 24AA044 EEPROM选型与应用全指南:从参数解析到实战编程
  • 华为的鸿蒙到底有多牛?为什么称作遥遥领先?

周新闻

  • 3步解锁iOS设备:applera1n激活锁绕过完全指南
  • 39 2026 人工智能证书终极盘点,普通人选 AI 证书可以从这些方向入手
  • Redis 暴露公网有多危险?从端口检查到补救步骤

月新闻

  • 【总结】入门篇:50句话让你记住架构核心概念
  • WeChatMsg技术方案解析:实现Mac微信数据自主管理的完整解决方案
  • WeChatMsg:革新性微信数据备份方案,打造你的专属数字记忆库

关于尧图

  • 公司简介
  • 团队介绍
  • 企业文化
  • 荣誉资质

服务项目

  • 定制开发
  • 电商建站
  • UI 设计
  • 运维服务

快速链接

  • 案例展示
  • 建站流程
  • 常见问题
  • 资讯中心

联系方式

  • 📍北京市朝阳区互联网产业园 A 座 10 层
  • 📞400-888-8888
  • ✉️contact@rkmt.cn
  • 🕐周一至周日 9:00-21:00

© 2024 北京尧图网络科技有限公司 版权所有 | 京 ICP 备 XXXXXXXX 号