90分,暴力, 求救
查看原帖
90分,暴力, 求救
1094889
xrqqqqq楼主2024/4/18 09:18
#include<bits/stdc++.h>
using namespace std;
typedef long long L;
const int N = 5e4 + 5;
typedef pair<int, int> P;
int n, m;
L a[105][105];
bool v[105][105];
bool ask(int x1, int y1, int x2, int y2) {
	L ans = 0;
	L k = y2 - y1 + 1;
	ans = a[x2][y2] - a[x1 - 1][y2] - a[x2][y1 - 1] + a[x1 - 1][y1 - 1];
	
	if (ans == k * k) {
		return true;
	}
	return 0;
}
int main() {
	ios::sync_with_stdio(0);
	cin.tie(0);
	cout.tie(0);
	cin >> n >> m;
	for (int i = 1; i <= n; ++i) {
		for (int j = 1; j <= m; ++j) {
			cin >> a[i][j];
			if (a[i][j] == 1) v[i][j] = 1;
			a[i][j] += a[i - 1][j] + a[i][j - 1] - a[i - 1][j - 1];
		}
	}
	int ans = 0;
	for(int i = 1; i <= n; ++i) 
		for (int j = 1; j <= m; ++j) {
			if (v[i][j]) {
				for (int k = 1; i + k - 1 <= n && j + k - 1 <= n; ++k) {
					if (ask(i, j, i + k - 1, j + k - 1)) ans = max(ans, k);
				}
			}
		}
	cout << ans;
}

2024/4/18 09:18
加载中...