1 solutions

  • -2
    @ 2025-10-1 19:21:34

    n^6超级暴力代码

    #include<bits/stdc++.h>
    using namespace std;
    int h,w;
    string a[200010];
    int ppp(int x1,int y1,int x2,int y2){
    	if(x1==x2){
    		for(int i=y1;i<=y2;i++)if(a[i][x1]=='0')return 0;
    		return y2-y1+1;}
    	if(y1==y2){
    		for(int i=x1;i<=x2;i++)if(a[y1][i]=='0')return 0;
    		return x2-x1+1;}
    	if(!ppp(x1,y1,x1,y2))return 0;
    	if(!ppp(x1,y2,x2,y2))return 0;
    	int mx=x2-x1+1,ans=mx;
    	for(int i=y2-1;i>=y1;i--){
    		int pp=mx;
    		for(int j=x1+1;j<x1+pp;j++)
    			if(a[i][j]=='0'){
    				mx=j-x1;
    				break;
    			}	
    		ans+=mx;
    	}
    	return ans;
    }
    int main(){
    	cin>>h>>w;int ans=0;
    	for(int i=1;i<=h;i++)cin>>a[i],a[i]=" "+a[i];
    	for(int x1=1;x1<=w;x1++)
    		for(int y1=1;y1<=h;y1++)
    			for(int x2=x1;x2<=w;x2++)
    				for(int y2=y1;y2<=h;y2++)
    					if(ans>+(w-x1+1)*(h-y1+1))break;
    					else ans=max(ans,ppp(x1,y1,x2,y2));
    	cout<<ans;
    	return 0;
    }
    
  • 1

Information

ID
12288
Time
500ms
Memory
1000MiB
Difficulty
4
Tags
# Submissions
122
Accepted
26
Uploaded By