2 条题解

  • 1
    @ 2026-3-17 21:49:01
    #include <iostream>
    using namespace std;
    int n,m,g[15][15],ans;
    int main() {
        cin >> n >> m;
        for (int i=0;i<n; i++) for (int j=0;j<m;j++)
            cin >> g[i][j];
        for (int i=0;i<n;i++) for (int j=0;j<m;j++)
            for (int k=i,s;k<n;k++) {
                s=0;
                for (int l=j;l<m;l++) {
                    bool ok=1;
                    for (int r=i;r<=k;r++) if (!g[r][l]) {
                        ok=0;   break;
                    }
                    if (!ok) break;
                    s++;
                }
                ans=max(ans,(k-i+1)*s);
            }
        cout << ans;
        return 0;
    }
    
    • @ 2026-3-27 17:58:23

      你在那个添胜集训暑假的时候我见过你,你的这个算法是深搜吧?

  • 0
    @ 2026-5-1 11:23:45
    #define LL long long
    using namespace std;
    const int N = 15;
    int n,m;
    int a[N][N];
    int h[N][N];
    int ans;
    int main(){
        cin>>n>>m;
        for(int i=1;i<=n;i++){
            for(int j=1;j<=m;j++){
                cin>>a[i][j];
                if(a[i][j]==1) h[i][j] = h[i-1][j] + 1;
                else h[i][j] = 0;
            }
        }
        for(int i=1;i<=n;i++){
            for(int l=1;l<=m;l++){
                int minh = 1e9;
                for(int r=l;r<=m;r++){
                    minh = min(minh, h[i][r]);
                    if(minh == 0) break;
                    ans = max(ans, minh*(r-l+1));
                }
            }
        }
        cout<<ans<<endl;
        return 0;
    }
    //:)
    //114514
    
    
    • 1

    信息

    ID
    3412
    时间
    1000ms
    内存
    256MiB
    难度
    6
    标签
    递交数
    43
    已通过
    15
    上传者