✏️ 纠错
第 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