求大佬解答,是不是细节错误?
我用的是深搜
#include<iostream>
using namespace std;
int n,m,t;
int x1,y1,x2,y2;
int ma[10][10];
int vis[10][10];
int sum=0;
int dx[4]={0,0,-1,1};
int dy[4]={1,-1,0,0};
bool dfs(int x,int y){
if(x==x2&&y==y2){
sum+=1;
return true;
}
vis[x][y]=1;
for(int i=0;i<4;i++){
int nx=x+dx[i];
int ny=y+dy[i];
if(nx>=0&&nx<n&&ny>=0&&ny<m&&vis[nx][ny]==0){
if(dfs(nx,ny))return true;
}
}
vis[x][y]=0;
return false;
}
int main(){
int xxx,yyy;
cin>>n>>m>>t;
cin>>x1>>y1>>x2>>y2;
x1--;y1--;x2--;y2--;
for(int i=0;i<t;i++){
cin>>xxx>>yyy;
vis[xxx--][yyy--]=1;
}
dfs(x1,y1);
cout<<sum;
return 0;
}