✏️ 纠错
第 146 题 / 共 155 题

题目描述

作为将军,你自然需要合理地排兵布阵。地图可以视为 n 行 m 列的网格,适合排兵的网格以 1 标注,不适合排兵的网格以 0 标注。现在你需要在地图上选择一个矩形区域排兵,这个矩形区域内不能包含不适合排兵的网格。请问可选择的矩形区域最多能包含多少网格?

输入格式

第一行,两个正整数 n,m,分别表示地图网格的行数与列数。

接下来 n 行,每行 m 个整数 ai,1​,ai,2​,…,ai,m​,表示各行中的网格是否适合排兵。

输出格式

一行,一个整数,表示适合排兵的矩形区域包含的最大网格数。

输入输出样例

输入 #1

4 3
0 1 1
1 0 1
0 1 1
1 1 1

输出 #1

4

输入 #2

3 5
1 0 1 0 1
0 1 0 1 0
0 1 1 1 0

输出 #2

3

说明/提示

对于所有测试点,保证 1≤n,m≤12,0≤ai,j​≤1。

📝 题目解析

【题目大意】给定n 行m 列的网格,每个格子为0 或1,找出不包含0 的最大矩形区域,求该区域包含的网格数(即面积)。

【考纲知识点】二维数组遍历、暴力枚举

【解题思路】暴力枚举所有可能的矩形区域(通过枚举上下左右边界),检查每个矩形内是否全为1,若是则计算其面积,最终记录最大面积并输出。

通过四层循环暴力枚举所有可能的矩形区域(枚举上边界u、左边界l、下边界d、右边界r),然后检查矩形内所有格子是否全为1(通过chk标记),若符合则计算其面积(r - l + 1) * (d - u + 1),并更新最大面积ans