1 条题解

  • 0
    @ 2023-6-11 12:24:19

    C++ :

    #include<stdio.h>
    #include<stdlib.h>
    #include<string.h>
    #define MAX 1005
    int p[MAX][MAX];
    int check(int a,int b,int ans){
        int temp=p[a][b];
        for(int i=0;i<ans;i++)
        for(int j=0;j<ans;j++){
            if(p[a+i][b+j]!=temp)return 0;
        }
        return 1;
    }
    int main(void){
        int a,b;
        scanf("%d%d",&a,&b);
        int mmax;
        if(a>b)mmax=a;
        else mmax=b;
        int ans=0;
        for(int i=0;i<a;i++)
            for(int j=0;j<b;j++)
                scanf("%d",&p[i][j]);
        for(int i=0;i<a;i++)
            for(int j=0;j<b;j++)
                for(int k=ans+1;k<=mmax;k++){
                    if(i+k<=mmax&&j+k<=mmax)
                        if(check(i,j,k))
                            ans=k;
                    else break;
                }
        printf("%d",ans*ans);
        return 0;
    }
    

    Java :

    import java.util.*;
    public class Main {
    	public static int AC[][]=new int[200][200];
    	public static boolean square(int i,int j,int b){
    		int flag=AC[i][j];
    		for(int x=0;x<b;x++){
    			for(int y=0;y<b;y++){
    				if(AC[i+x][j+y]!=flag)
    					return false;
    			}
    		}
    		return true;
    	}
    	public static void main(String[] args) {
    		Scanner sc=new Scanner(System.in);
    		int R=sc.nextInt();
    		int C=sc.nextInt();
    		int maxBC=Math.min(R, C);//最大边长不可超过矩形最短边
    		//传入数组
    		for(int x=0;x<R;x++){
    			for(int y=0;y<C;y++){
    				AC[x][y]=sc.nextInt();
    			}
    		}
    		int max=0;//正方形最大边长
    		int b;//正方形边长
    		for(int x=0;x<R;x++){
    			for(int y=0;y<C;y++){
    				for(b=max+1;b<=maxBC;b++){
    					if(x+b<=R&&y+b<=C){
    						if(square(x,y,b))
    							max=b;
    						else
    							continue;
    					}
    				}
    			}
    		}
    		System.out.println(max*max);
    	}
     
    }
    
    • 1

    信息

    ID
    2774
    时间
    1000ms
    内存
    128MiB
    难度
    (无)
    标签
    递交数
    0
    已通过
    0
    上传者