题解在此
2025-06-08 15:22:44
发布于:浙江
2阅读
0回复
0点赞
本人是初学深搜的小白
#include <iostream>
using namespace std;
int n,m,t;
int sx,sy,fx,fy;
int ans;
int map[50][50];
bool vis[50][50];
int dirx[4]={-1,1,0,0};
int diry[4]={0,0,-1,1};
void dfs(int x,int y){
if (x==fx&&y==fy){
ans++;
return;
}
for (int i=0;i<4;i++){
int nx=x+dirx[i];
int ny=y+diry[i];
if (nx<1||nx>n||ny<1||ny>m||vis[nx][ny]==1||map[nx][ny]==1){
continue;
}
vis[nx][ny]=1;
dfs(nx,ny);
vis[nx][ny]=0;
}
}
int main(){
cin>>n>>m>>t;
cin>>sx>>sy>>fx>>fy;
vis[sx][sy]=1;
while (t--){
int x,y;
cin>>x>>y;
map[x][y]=1;
}
dfs(sx,sy);
cout<<ans;
return 0;
}
这里空空如也
有帮助,赞一个