#include <bits/stdc++.h>
using namespace std;
int a[114][514], vis[114][514], dd[4][2] = {{1, 0}, {-1, 0}, {0, 1}, {0, -1}};
int n, m, t;
int sx, sy, fx, fy, zx, zy;
int ans = 0;
void init(int n, int m) {
for (int i = 1; i <= n; i++) {
for (int j = 1; j <= m; j++) {
a[i][j] = 1;
}
}
}
void dfs(int x, int y) {
if (x == fx && y == fy) {
ans++;
return;
} else {
for (int i = 0; i < 4; i++) {
int xx, yy;
xx = dd[i][0] + x;
yy = dd[i][1] + y;
if (vis[xx][yy] == 0 && a[xx][yy] == 1) {
vis[xx][yy] = 1; //走
dfs(xx, yy);
vis[xx][yy] = 0;
}
}
}
}
int main() {
cin >> n >> m >> t;
cin >> sx >> sy >> fx >> fy;
init(n, m);
for (int i = 1; i <= t; i++) {
cin >> zx >> zy;
a[zx][zy] = 0;
}
dfs(sx, sy );
cout << ans;
return 0;
}
有点不懂,这个深搜怎么了??