Heng_Xin 题解分享 · 2024/5/31
路径计数(结果填空) - 题解
```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