30分求助
查看原帖
30分求助
402384
orgn楼主2021/7/27 21:57
#include<bits/stdc++.h>
using namespace std;
int n, m, sum[1505][1505], a[1505], cnt = 1;
int main () {
	cin >> n >> m;
	for (int i = 1; i <= n; i++) {
		for (int j = 1; j <= m; j++) {
			cin >> sum[i][j];
			if ((i % 2 == 1 && j % 2 == 1) || (i % 2 == 0 && j % 2 == 0))if (sum[i][j] == 0) sum[i][j] = 1;
				else sum[i][j] = 0;
			sum[i][j] += sum[i][j - 1];
		}
	}
	for (int i = 1; i <= m - cnt; i++) {
		for (int j = i + cnt; j <= m; j++) {
			a[0] = 0;
			for (int k = 1; k <= n; k++) a[k] = sum[k][j] - sum[k][i - 1];
			for (int k = 1; k <= n; k++) if (a[k] != 0) a[k] = 1;
			for (int k = 1; k <= n; k++) if (a[k] == 0) a[k] = a[k - 1] - 1;
				else a[k] = a[k - 1] + 1;
			for (int k = 1; k <= n - (j - i + 1); k++) {
				if (abs(a[k + (j - i + 1)] - a[k]) == j - i + 1) cnt = j - i + 1;
			}
		}
	}
	cout << cnt << endl;
	return 0;
}

求助Q_Q

2021/7/27 21:57
加载中...