1 条题解

  • 1

    暴力出奇迹

    #include<bits/stdc++.h>
    
    using namespace std;
    
    int grid[105][105];
    
    int main(){
    
        int ans=0,n,m;
    
        cin>>n>>m;
    
        for(int i=0;i<n;i++){
    
        	for(int j=0;j<m;j++){
    
        		cin>>grid[i][j];
    
        	}
    
        }
    
        for(int i=0;i<n;i++){
    
            for(int j=0;j<m;j++){//枚举点
    
            	if(!grid[i][j])	continue;
    
            	ans=max(ans,1);
    
            	int len=1;
    
            		for(len;;len++){//枚举边长
    
                    bool flag=1;
    
            		if(i+len>=n||j+len>=m)	break;//越界
    
            		for(int x=1;x<=len;x++){
    
            			if(grid[x+i][j]*grid[i][x+j]*
    
            			grid[x+i][len+j]*grid[len+i][x+j]==0){//有0
    
            				flag=0;
    
            				break;//不满足
    
            			}
    
            		}
    
            		if(flag){
    
            			ans=max(ans,(len+1)\*(len+1));
    
            		}
    
            	}
    
            }
    
        }
    
        cout<<ans;
    
    }
    

    信息

    ID
    807
    时间
    1000ms
    内存
    256MiB
    难度
    10
    标签
    递交数
    6
    已通过
    2
    上传者