100%的数据R,C<=200;
package basic_PRactice;import java.util.Scanner;public class anlian_bfs { static int s[][]=new int[200][200]; static int ispure(int x1,int y1,int w){//判断是否是边长为w的正方型,main函数要调用,所以要为static int pure=s[x1][y1]; for(int i=0;i<w;i++){ for(int j=0;j<w;j++){ if(s[x1+i][y1+j]!=pure) return 0; } } return 1; } public static void main(String[] args) { int r,c,m,w,max=0; Scanner in=new Scanner(System.in); r=in.nextInt(); c=in.nextInt(); if(r>c) m=r; else m=c; for(int i=0;i<r;i++){ for(int j=0;j<c;j++){ s[i][j]=in.nextInt(); } } for(int i=0;i<r;i++){ for(int j=0;j<c;j++){ for(w=max+1;w<m;w++){ if(i+w<=r&&j+w<=c){ if(ispure(i,j,w)!=0)//java中不能直接用//ispure(i,j,w)max=w;}else break;}}}System.out.println(max*max);}}
新闻热点
疑难解答