网易互娱:笔试第四题
一直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);
}
}
} 