蜜汁70分,求调!
查看原帖
蜜汁70分,求调!
415961
Luo_gu_ykc楼主2022/5/29 17:53
#include<bits/stdc++.h>

using namespace std;

const int N = 105;

int c[N][N], n, m, sum, a[N];

int main(){
    cin >> n >> m;
    for(int i = 1; i <= n; i++){
        for(int j = 1; j <= m; j++){
            cin >> c[i][j];
        }
    }
    for(int o = 1; o <= n; o++){
        int b[N] = {0}, len = 0, ans[N] = {0};
        for(int i = 1; i <= m; i++){
            if(c[o][i] == 1){
                a[i]++;
            } else {
                a[i] = 0;
            }
        }
        for(int i = 1; i <= m; i++){
            while(len >= 1 && a[i] < a[b[len]]){
                ans[b[len]] = i;
                len--;
            }
            b[++len] = i;
        }
        for(int i = 1; i <= m; i++){
            if(ans[i] == 0){
                ans[i] = m + 1;
            }
            sum = max(sum, min(a[i], ans[i] - i));
        }
    }
    cout << sum;
}

2022/5/29 17:53
加载中...