输入格式
第一行输入两个整数n(1≤n≤11),m(1 ≤m ≤11),表示迷宫的行和列。然后有一个n × m的地图,地图
由’.’、’#’、's '.‘e’这四个部分组成。’.‘表示可以通行的路,’#’表示迷宫的墙,'s’表示起始点,'e’表示终点。
输出格式
输出一个整数,表示从’s '到达’e’的所有方案数。
样例输入
5 5
s####
.####
.####
.####
. . . .e
样例输出
1
#include<cstdio>
#include<iostream>
using namespace std;
char str[100][100];
bool vis[100][100];
int n,m,x,y,cns;
void dfs(int x,int y)
{
if(x<0||x>=n||y<0||y>=m||vis[x][y]||str[x][y]=='#')
{
return;
}
if(str[x][y]=='e')
{
cns++;
return;
}
vis[x][y]=true;
dfs(x+1,y);
dfs(x-1,y);
dfs(x,y+1);
dfs(x,y-1);
vis[x][y]=false;
}
int main()
{
cin>>n>>m;
for(int i=0;i<n;i++)
{
scanf("%s",str[i]);
}
for(int i=0;i<n;i++)
{
for(int j=0;j<m;j++)
{
if(str[i][j]=='s')
{
x=i;
y=j;
}
}
}
dfs(x,y);
cout<<cns<<endl;
return 0;
}