网易互娱:笔试第四题
一直0%,我感觉没啥问题啊。。。。真的头冷,好歹过几个吧~有没有大佬做出来的
import java.util.*; public class Main { public static void main(String arg[]){ Scanner in = new Scanner(System.in); int t = in.nextInt(); for (int term=0; term<t; term++){ int n = in.nextInt(); int m = in.nextInt(); int a=-1,b=-1,c=-1,d=-1; if (n<3||m<3) { System.out.println(a+" "+b+" "+c+" "+d); continue; } int[][] paper = new int[n+1][m+1]; int max = Math.min(n,m)/3; int[][][] dp = new int[max+1][n+1][m+1]; for (int i=1; i<=n;i++){ char[] str = in.next().toCharArray(); for (int j=1; j<=m; j++){ paper[i][j] = str[j-1] - '0'; dp[1][i][j] = paper[i][j]; } } for (int k=2; k<=max; k++){ for (int i=1; i<=n; i++){ for (int j=1; j<=m; j++){ dp[k][i][j]=-1; } } } for (int k=2; k<=max; k++){ for (int i=1; i+k-1<=n; i++){ for (int j=1; j+k-1<=m; j++){ if (dp[k-1][i][j]==-1||dp[k-1][i+k-1][j]==-1||dp[k-1][i][j+k-1]==-1||dp[k-1][i+k-1][j+k-1]==-1){ dp[k][i][j] = -1; } else if (dp[k-1][i][j]==dp[k-1][i+k-1][j]&&dp[k-1][i][j]==dp[k-1][i][j+k-1]&&dp[k-1][i][j]==dp[k-1][i+k-1][j+k-1]){ dp[k][i][j] = dp[k-1][i][j]; } else { dp[k][i][j] = -1; } } } } boolean isFind; for (int k=1; k<=max; k++){ isFind = false; for (int i=1; i+3*k-1<=n; i++){ for (int j=1; j+3*k-1<=m; j++){ if (dp[k][i][j]==0&& dp[k][i+k][j]==1&& dp[k][i+2*k][j]==0&& dp[k][i][j+k]==1&& dp[k][i][j+2*k]==0&& dp[k][i+k][j+k]==1&& dp[k][i+2*k][j+k]==1&& dp[k][i+k][j+2*k]==1&& dp[k][i+2*k][j+2*k]==0){ a=i; b=j; c=i+3*k-1; d=j+3*k-1; isFind =true; break; } if (isFind) break; } } } System.out.println(a+" "+b+" "+c+" "+d); } } }