wgreh



package migong_zuiduanlujin;

import java.util.Scanner;

public class Migo_zui {
  //public static int[][] maze={{0,0,1,1,0,0,1,1},{0,0,0,0,1,1,1,1},{0,1,0,1,0,1,1,1},{0,0,0,0,0,0,0,0},{1,0,0,1,0,1,1,1},{0,0,1,0,0,1,1,0},{0,1,0,0,0,0,0,0,},{0,0,0,0,0,0,1,0}};
     public static int[][] maze;
     public static int minX[]=new int[100000];
     public static int minY[]=new int[100000];
     public static int xycount=0;
     public static int pc=2;
     public static int findPath=2;
  public static int dX[]={-1,0,1,0};//shang  you xia left
  public static int dY[]={0,1,0,-1};
     public static boolean isFind=false;
     public static int allmethods=0;
     public static boolean isOut(int curx,int cury){
      boolean result=true;
      if(curx<0||curx>7||cury<0||cury>7)
       result=false;
      return result;
     }
  public static void dFS(int x,int y){
   if(x==7&&y==7){
    isFind=true;
    while(findPath<pc){
    for(int i=0;i<5;i++){
     for(int j=0;j<5;j++){
      if(maze[i][j]==findPath){
       perX[allmethods][xycount]=i;
       perY[allmethods][xycount]=j;
       xycount++;
      }
     }
     
    }
    findPath++;
    }
    allmethods++;
    return ;
   }
   for(int i=0;i<4;i++){
    int newX=x+dX[i];
    int newY=y+dY[i];
    if(isOut(newX,newY)&&maze[newX][newY]==0){
     maze[newX][newY]=pc;
     pc++;
     dFS(newX,newY);
     maze[newX][newY]=0;
    }
   }
  }
  public static void main(String[] args){
   Scanner in=new Scanner(System.in);
   maze=new int[5][5];
      for(int i=0;i<5;i++){
       for(int j=0;j<5;j++){
        maze[i][j]=in.nextInt();
       }
      }
   dFS(0,0);
   System.out.println(" ");
   System.out.println(allmethods);
   if(isFind)
   {
    System.out.print("Success");
   }else{
    System.out.print("fail");
   }
    
  }

 


}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值