1 solutions

  • 0
    @ 2026-10-17 20:33:50
    #include <bits/stdc++.h>
    using namespace std;
    int n,m,a[25][25],maxn = 1;
    int main(){
        cin>>n>>m;
        for(int i = 1;i<=n;i++){
            for(int j = 1;j<=m;j++){
                cin>>a[i][j];
            }
        }
        for(int k = 1;k<=n;k++){//遍历边长
            for(int i = 1;i<=n-k+1;i++){//遍历正方形左上角行
                for(int j = 1;j+k-1<=m;j++){//遍历正方形左上角列
                    int sum = 0;
                    //遍历左上角为(i,j)边长为k的正方形,求该正方形元素和
                    for(int x = i;x<=i+k-1;x++){
                        for(int y= j;y<=j+k-1;y++){
                            sum+=a[x][y];
                        }
                    }
                    //如果遍历的正方形没有0,正方形元素和等于边长*边长
                    if(k*k==sum){
                        maxn = k;
                    }
                }
            }
            
        }
        cout<<maxn;
        return 0;
    }
    

    Information

    ID
    3603
    Time
    1000ms
    Memory
    256MiB
    Difficulty
    3
    Tags
    (None)
    # Submissions
    13
    Accepted
    5
    Uploaded By