608F(待解决)迷宫问题
作者:互联网
题目http://codeup.cn/problem.php?cid=100000608&pid=5
问题:递归边界考虑的不完善。有太多考虑不完善的地方。但是好歹把大概框架写出来了。
#include<stdio.h>
int a[16][16],b[16][16]={0},n,m;
int cnt=0;
void DFS(int stx,int sty,int ex,int ey){
if(stx==n||sty==m||(stx==ex&&sty==ey)){
cnt++;//输出队列
return;
}
if(a[stx-1][sty]){
b[stx-1][sty]=1;//做标记
DFS(stx-1,sty,ex,ey);
b[stx-1][sty]=0;
}
if(a[stx][sty-1]){
b[stx][sty-1]=1;//做标记
DFS(stx,sty-1,ex,ey);
b[stx][sty-1]=0;
}
if(a[stx+1][sty]){
b[stx+1][sty]=1;//做标记
DFS(stx+1,sty,ex,ey);
b[stx+1][sty]=0;
}
if(a[stx][sty+1]){
b[stx][sty+1]=1;//做标记
DFS(stx,sty+1,ex,ey);
b[stx][sty+1]=0;
}
}
int main(){
scanf("%d%d",&n,&m);
int i,j;
for(i=0;i<n;i++){
for(j=0;j<m;j++){
scanf("%d",&a[i][j]);
}
}
int stx,sty,ex,ey;
scanf("%d%d%d%d",&stx,&sty,&ex,&ey);
DFS(stx,sty,ex,ey);
printf("%d\n",cnt);
return 0;
}
标签:608F,迷宫,DFS,int,ey,ex,解决,stx,sty 来源: https://blog.csdn.net/weixin_45547419/article/details/114764878