import java.util.Scanner; public class Main { static int[][] judge = new int[6][6]; static int[][] map = new int[6][6]; static int[] dx = { 0, 0, 1, -1 }; static int[] dy = { 1, -1, 0, 0 }; static int N, M, T; static int sx, sy, fx, fy; static int sum = 0; static void dfs(int x, int y) { if (x == fx && y == fy) { sum++; return; } else { for (int i = 0; i <= 3; i++) { if (judge[x + dx[i]][y + dy[i]] == 0 && map[x + dx[i]][y + dy[i]] == 1) { judge[x][y] = 1; dfs(x + dx[i], y + dy[i]); judge[x][y] = 0; } } } } public static void main(String[] args) { Scanner sc = new Scanner(System.in); N = sc.nextInt(); M = sc.nextInt(); T = sc.nextInt(); sx = sc.nextInt(); sy = sc.nextInt(); fx = sc.nextInt(); fy = sc.nextInt(); for (int i = 1; i <= N; i++) { for (int j = 1; j <= M; j++) { map[i][j] = 1; } } for (int i = 1; i <= T; i++) { int x = sc.nextInt(); int y = sc.nextInt(); map[x][y] = 0; } dfs(sx, sy); System.out.println(sum); } }
备忘:日后详更思路。(最近真的时间不够用aaaa,forgive me.)