欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

dfs-迷宫

程序员文章站 2022-07-13 11:19:32
...

dfs-迷宫

import java.util.Scanner;
    public class 单词2 {
        public static void dfs(int x,int y,int [][]arr) {
            if (x<1||x>n){
                return;
            }
            if (y<1||y>m){
                return;
            }
            if (x==x2&&y==y2&&arr[x][y]!=2){
                ans++;
                return;
            }
            if (arr[x][y]==1||arr[x][y]==2)return;
            arr[x][y]=1;
            dfs(x+1,y,arr);//下
            dfs(x,y+1,arr);//右
            dfs(x-1,y,arr);//上
            dfs(x,y-1,arr);//左
            arr[x][y]=0;//回溯


        }
        static int x2,y2;
        static int n,m;
        static int ans;
        public static void main(String[] args) {

            Scanner scanner=new Scanner(System.in);
            n=scanner.nextInt();
            m=scanner.nextInt();
            int t=scanner.nextInt();
            int x1=scanner.nextInt();
            int y1=scanner.nextInt();
            x2=scanner.nextInt();
            y2=scanner.nextInt();
            int [][] arr=new int[n+1][m+1];
            for(int i=1;i<=t;i++) {
                int x0=scanner.nextInt();
                int y0=scanner.nextInt();
                arr[x0][y0]=2;
            }
            dfs(x1,y1,arr);
            System.out.println(ans);
        }
}
相关标签: 蓝桥杯 dfs