package Dduo; import java.util.Scanner; public class Main { static Scanner sc=new Scanner(System.in); static char arr[][]=new char[30][50]; static int cnt=Integer.MAX_VALUE; public static void main(String[] args) { arr[0]="01010101001011001001010110010110100100001000101010".toCharArray(); arr[1]="00001000100000101010010000100000001001100110100101".toCharArray(); arr[2]="01111011010010001000001101001011100011000000010000".toCharArray(); arr[3]="01000000001010100011010000101000001010101011001011".toCharArray(); arr[4]="00011111000000101000010010100010100000101100000000".toCharArray(); arr[5]="11001000110101000010101100011010011010101011110111".toCharArray(); arr[6]="00011011010101001001001010000001000101001110000000".toCharArray(); arr[7]="10100000101000100110101010111110011000010000111010".toCharArray(); arr[8]="00111000001010100001100010000001000101001100001001".toCharArray(); arr[9]="11000110100001110010001001010101010101010001101000".toCharArray(); arr[10]="00010000100100000101001010101110100010101010000101".toCharArray(); arr[11]="11100100101001001000010000010101010100100100010100".toCharArray(); arr[12]="00000010000000101011001111010001100000101010100011".toCharArray(); arr[13]="10101010011100001000011000010110011110110100001000".toCharArray(); arr[14]="10101010100001101010100101000010100000111011101001".toCharArray(); arr[15]="10000000101100010000101100101101001011100000000100".toCharArray(); arr[16]="10101001000000010100100001000100000100011110101001".toCharArray(); arr[17]="10101001000000010100100001000100000100011110101001".toCharArray(); arr[18]="11001010000100001100000010100101000001000111000010".toCharArray(); arr[19]="00001000110000110101101000000100101001001000011101".toCharArray(); arr[20]="10100101000101000000001110110010110101101010100001".toCharArray(); arr[21]="00101000010000110101010000100010001001000100010101".toCharArray(); arr[22]="10100001000110010001000010101001010101011111010010".toCharArray(); arr[23]="00000100101000000110010100101001000001000000000010".toCharArray(); arr[24]="11010000001001110111001001000011101001011011101000".toCharArray(); arr[25]="00000110100010001000100000001000011101000000110011".toCharArray(); arr[26]="10101000101000100010001111100010101001010000001000".toCharArray(); arr[27]="10000010100101001010110000000100101010001011101000".toCharArray(); arr[28]="00111100001000010000000110111000000001000000001011".toCharArray(); arr[29]="10000001100111010111010001000110111010101101111000".toCharArray(); dfs(0,0,-1); System.out.print(cnt); } public static void dfs(int x,int y,int count) { count++; //递归出口 //防止爆栈 if(count>1500)return; if(x==29&&y==49)cnt=Math.min(cnt, count); //越界 if(x>29||y>49||x<0||y<0)return; if(arr[x][y]=='1')return; //递归表达式 dfs(x+1,y,count); dfs(x-1,y,count); dfs(x,y+1,count); dfs(x,y-1,count); } }