题解分享
题解分享简介
路径计数(结果填空) - 题解
```cpp
#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
7



