其他分享
首页 > 其他分享> > 608F(待解决)迷宫问题

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