tijie
2024-11-03 11:14:23
发布于:江苏
9阅读
0回复
0点赞
#include<bits/stdc++.h>
using namespace std;
int n,m,sx,sy,fx,fy,t;
int mp[50][50];
int v[50][50];
int cnt;
void dfs(int x,int y){
int nx,ny;
if(x == fx and y == fy){
cnt ++;
return;
}
v[x][y] = 1;
nx = x-1;
ny = y;
if(mp[nx][ny] != 1 and v[nx][ny] == 0 and x >= 1 and x <= n and y >= 1 and y <= m) dfs(nx,ny);
nx = x;
ny = y-1;
if(mp[nx][ny] != 1 and v[nx][ny] == 0 and x >= 1 and x <= n and y >= 1 and y <= m) dfs(nx,ny);
nx = x+1;
ny = y;
if(mp[nx][ny] != 1 and v[nx][ny] == 0 and x >= 1 and x <= n and y >= 1 and y <= m) dfs(nx,ny);
nx = x;
ny = y+1;
if(mp[nx][ny] != 1 and v[nx][ny] == 0 and x >= 1 and x <= n and y >= 1 and y <= m) dfs(nx,ny);
v[x][y] = 0;
}
int main(){
cin >> n >> m >> t >> sx >> sy >> fx >> fy ;
for(int i = 1;i <= t;i ++){
int ax,ay;
cin >> ax >> ay;
mp[ax][ay] = 1;
}
dfs(sx,sy);
cout << cnt;
return 0;
}
这里空空如也
有帮助,赞一个