dfs-迷宫
程序员文章站
2022-07-13 11:19:32
...
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);
}
}
上一篇: BFS & DFS 迷宫
下一篇: 简单迷宫(DFS、BFS)