public class Main {
static int res = 0;
static boolean [][] rec = new boolean[7][7];
static int[][] dir = {
{0, 1},
{0, -1},
{1, 0},
{-1, 0}
};
public static void main(String[] args) {
rec[3][3] = true;
f(3, 3);
System.out.println(res/4);
}
public static void f(int x,int y){
if (x == 0 || x == 6 || y == 0 || y == 6) {
res++;
return;
}
for (int i = 0; i < 4; i++) {
int dx = x + dir[i][0];
int dy = y + dir[i][1];
if (rec[dx][dy] == false){
rec[dx][dy] = true;
rec[6-dx][6-dy] = true;
f(dx, dy);
rec[6-dx][6-dy] = false;
rec[dx][dy] = false;
}
}
}
}
蓝桥杯 方格分割 JAVA
最新推荐文章于 2024-10-03 23:33:17 发布