1 条题解
-
0
C++ :
#include <iostream> #include <vector> using namespace std; int main() { int n, m; cin >> n >> m; vector<vector<int>> matrix(n, vector<int>(m)); // 读取输入并转换为数字矩阵(关键步骤1) for (int i = 0; i < n; i++) { string s; cin >> s; for (int j = 0; j < m; j++) { matrix[i][j] = s[j] - '0'; // 字符转数字 } } int ans = 0; // 四重循环枚举所有矩形(关键步骤2) for (int i1 = 0; i1 < n; i1++) { for (int j1 = 0; j1 < m; j1++) { for (int i2 = i1; i2 < n; i2++) { // 右下角行号>=左上角 for (int j2 = j1; j2 < m; j2++) { // 右下角列号>=左上角 int cnt = 0; // 统计矩形内1的数量(关键步骤3) for (int x = i1; x <= i2; x++) { for (int y = j1; y <= j2; y++) { cnt += matrix[x][y]; } } // 判断平衡条件(关键步骤4) int area = (i2-i1+1)*(j2-j1+1); if (cnt*2 == area) { // 1的数量等于总格子数的一半 ans = max(ans, area); } } } } } cout << ans; return 0; }
- 1
信息
- ID
- 5529
- 时间
- 1000ms
- 内存
- 128MiB
- 难度
- (无)
- 标签
- 递交数
- 0
- 已通过
- 0
- 上传者