爆零求助
查看原帖
爆零求助
1280061
TPJX楼主2024/7/17 09:25

Code:

#include <iostream>
#include <cstring>
using namespace std;

const int N = 1010;
int n, m, k, sum0[N][N], sum1[N][N];
char a[N][N];

int main() {
	scanf("%d%d%d",&n,&m,&k);
	for (int i = 1; i <= n; ++i) {
		for (int j = 1; j <= m; ++j) {
			cin >> a[i][j];
			sum0[i][j] = sum0[i - 1][j] + sum0[i][j - 1] - sum0[i - 1][j - 1] + (a[i][j] - '0' == 0);
			sum1[i][j] = sum1[i - 1][j] + sum1[i][j - 1] - sum1[i - 1][j - 1] + (a[i][j] - '0' == 1);
		}
	}
	int ans = 0x3f3f3f3f;
	for (int x1 = 1; x1 <= n; ++x1) {
		for (int y1 = 1; y1 <= m; ++y1) {
			for (int x2 = x1; x2 <= n; ++x2) {
				for (int y2 = y1; y2 <= m; ++y2) {
					int cnt1 = sum1[x2][y2] - sum1[x1-1][y2] - sum1[x2][y1-1] + sum1[x1-1][y1-1];
					if (cnt1 >= k)
						ans = min(ans, (x2 - x1 + 1) * (y2 - y1 + 1));
				}
			}
		}
	}
	printf("%d",ans);
	return 0;
}
2024/7/17 09:25
加载中...