蓝桥杯Java组暴力递归搜图

简介: 蓝桥杯Java组暴力递归搜图


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);
   }
   
}
目录
相关文章
|
15小时前
|
存储 Java
Java基础手册(标识符 关键字 字面值 变量 数据类型 字符编码 运算符 控制语句 方法及方法重载和递归 面向对象与面向过程)
Java基础手册(标识符 关键字 字面值 变量 数据类型 字符编码 运算符 控制语句 方法及方法重载和递归 面向对象与面向过程)
5 0
|
2天前
|
Java 大数据 程序员
老程序员分享:java递归
老程序员分享:java递归
|
2天前
|
Java
java实现斐波那契数列(递归、迭代、流)
java实现斐波那契数列(递归、迭代、流)
7 1
|
3天前
|
Java
二分查找-递归(java)
二分查找-递归(java)
7 0
|
4天前
|
Java
java使用递归遍历文件目录
java使用递归遍历文件目录
7 0
|
4天前
|
Java
2023届蓝桥杯大赛软件类国赛Java大学B组 互质 数论
2023届蓝桥杯大赛软件类国赛Java大学B组 互质 数论
6 1
|
4天前
|
存储 前端开发 算法
2016届蓝桥杯大赛软件类国赛Java大学B组 反幻方 暴力搜索
2016届蓝桥杯大赛软件类国赛Java大学B组 反幻方 暴力搜索
4 0
|
4天前
|
Java
2016届蓝桥杯大赛软件类国赛Java大学B组 愤怒小鸟 数学模拟
2016届蓝桥杯大赛软件类国赛Java大学B组 愤怒小鸟 数学模拟
20 4
|
4天前
|
Java
2021蓝桥杯大赛软件类国赛Java大学B组 完全日期 复杂遍历搜索
2021蓝桥杯大赛软件类国赛Java大学B组 完全日期 复杂遍历搜索
12 2
|
4天前
|
Java
2022蓝桥杯大赛软件类国赛Java大学B组 左移右移 空间换时间+双指针
2022蓝桥杯大赛软件类国赛Java大学B组 左移右移 空间换时间+双指针
15 3