又是我这个蒟蒻 这次1605又双叒叕把我卡住了:-( 30分求助!!!
#include<bits/stdc++.h>
using namespace std;
#define loop(i, a, b, x) for(int i = a; i <= b; i += x)
int mp[6][6], vis[6][6];
int dx[4]= {0,1,0,-1};
int dy[4]= {1,0,-1,0};
int n, m, t, sx, sy, fx, fy, tmpx, tmpy, sum = 0;
void dfs(int x, int y) {
if(x == fx && y == fy) {
sum ++ ;
return;
} else {
vis[x][y] = 1;
for(int i = 0; i < 4; ++ i) {
if(mp[x+dx[i]][y+dy[i]] == 0 && vis[x][y] == 0) {
dfs(x+dx[i],y+dy[i]);
}
}vis[x][y] = 0;
}
}
int main() {
memset(mp, 0, sizeof(mp));
cin >> n >> m >> t;
cin >> sx >> sy >> fx >> fy;
loop(i, 1, t, 1) {
cin >> tmpx >> tmpy;
mp[tmpx][tmpy] = 1;
}
dfs(sx, sy);
cout << sum;
return 0;
}
感谢回答