#include <cstdio>
#include <vector>
#include <functional>
// #include <bits/stdc++.h>
using namespace std;
const int fx[4][2] = {
{1, 0}, {-1, 0}, {0, 1}, {0, -1}
};
int main() {
const int n = 6;
vector<vector<char>> vis(n, vector<char>(n, 0));
int res = 0;
function<void(int, int, int)> dfs = [&](int i, int j, int d) {
if (i == 0 && j == 0 && d > 2 && d <= 12 && vis[i][j]) { // 小心 (0, 0) -> (0, 1) -> (0, 0) 这类路线(所以 d > 2)
++res;
return;
}
if (i < 0 || j < 0 || i >= n || j >= n || vis[i][j] || d > 12)
return;
vis[i][j] = 1;
for (const auto& it : fx) {
dfs(i + it[0], j + it[1], d + 1);
}
vis[i][j] = 0;
};
dfs(0, 0, 0);
printf("%d\n", res);
return 0;
}
3 回复
0 转发
0 喜欢
6 阅读



