求迷宫的最短路径
#include <iostream>
#include <climits>
using namespace std;
int n;
char a[105][105];
int d[105][105];
int fx[5]={0,0,1,0,-1};
int fy[5]={0,1,0,-1,0};
void dfs(int x,int y,int dep)
{
d[x][y]=dep;
int tx,ty;
for(int i=1;i<=4;i++)
{
tx=x+fx[i];
ty=y+fy[i];
if(a[tx][ty]=='.'&&dep+1<d[tx][ty])
{
dfs(tx,ty,dep+1);
}
}
}
int main ()
{
cin >> n;
for(int i=1;i<=n;i++)
{
for(int j=1;j<=n;j++)
{
cin >> a[i][j];
d[i][j]=INT_MAX;
}
}
dfs(1,1,1);
cout << d[n][n] << endl;
return 0;
}