蜜汁70分,求调!

P1387 最大正方形

```cpp #include <iostream> #include <algorithm> #include <cstdio> using namespace std; int a[105][105]; int pre[105][105]; int main() { #ifndef ONLINE_JUDGE freopen("square.in","r",stdin); freopen("square.out","w",stdout); #endif ios::sync_with_stdio(0); int n, m; cin >> n >> m; for (int i = 1; i <= n; i++) { for (int j = 1; j <= m; j++) { cin >> a[i][j]; } } for (int i = 1; i <= n; i++) { for (int j = 1; j <= m; j++) { pre[i][j] = pre[i][j - 1] + a[i][j]; } } for (int i = 2; i <= n; i++) { for (int j = 1; j <= m; j++) { pre[i][j] = pre[i][j] + pre[i - 1][j]; } } int ans = 0; for (int len = 1; len <= min(n, m); len++) { for (int i = 1; i <= n - len + 1; i++) { for (int j = 1; j <= m - len + 1; j++) { if (pre[i + len - 1][j + len - 1] - pre[i + len - 1][j - 1] - pre[i - 1][j + len - 1] + pre[i - 1][j - 1] == len * len) ans = max(ans, len); } } } cout << ans << endl; return 0; } ```
by int_stl @ 2022-11-05 15:50:01


|