迷宫问题

Posted abs27

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了迷宫问题相关的知识,希望对你有一定的参考价值。

#include<bits/stdc++.h>
using namespace std;
int a,ans=0,c[105][105];
char b[105][105];

int p(int x,int y)
{
	if(x==1&&y==a)
	{
		ans++;
		return 1;
	}
	bool sf=0;
	if(b[x-1][y]==‘0‘&&!c[x-1][y]) c[x-1][y]=1,p(x-1,y),sf=1,c[x-1][y]=0;
	if(b[x-1][y+1]==‘0‘&&!c[x-1][y+1]) c[x-1][y+1]=1,p(x-1,y+1),sf=1,c[x-1][y+1]=0;
	if(b[x-1][y-1]==‘0‘&&!c[x-1][y-1]) c[x-1][y-1]=1,p(x-1,y-1),sf=1,c[x-1][y-1]=0;
	if(b[x][y+1]==‘0‘&&!c[x][y+1]) c[x][y+1]=1,p(x,y+1),sf=1,c[x][y+1]=0;
	if(b[x][y-1]==‘0‘&&!c[x][y-1]) c[x][y-1]=1,p(x,y-1),sf=1,c[x][y-1]=0;
	if(b[x+1][y]==‘0‘&&!c[x+1][y]) c[x+1][y]=1,p(x+1,y),sf=1,c[x+1][y]=0;
	if(b[x+1][y+1]==‘0‘&&!c[x+1][y+1]) c[x+1][y+1]=1,p(x+1,y+1),sf=1,c[x+1][y+1]=0;
	if(b[x+1][y-1]==‘0‘&&!c[x+1][y-1]) c[x+1][y-1]=1,p(x+1,y-1),sf=1,c[x+1][y-1]=0;
	
	return 0;
}

int main()
{
	cin>>a;
	c[1][1]=1;
	for(int i=1;i<=a;i++)
		for(int j=1;j<=a;j++) cin>>b[i][j];
	p(1,1);
	cout<<ans;
	return 0;
}

以上是关于迷宫问题的主要内容,如果未能解决你的问题,请参考以下文章

迷宫问题

迷宫问题代码

关于回溯java的迷宫解析问题

跪求高手 数据结构迷宫问题

数据结构与算法大作业:走迷宫程序(C语言,DFS)(代码以及思路)

超详解的迷宫问题(Java版)