#include <bits/stdc++.h>
using namespace std;
char a[105][105];
int dx[]={0,0,-1,1};
int dy[]={-1,1,0,0};
int n,m;
bool vis[105][105];
void dfs(int x,int y)
{
if(x<1 || x>n || y<1 || y>m || a[x][y]=='#')
{
return;
}
if(x==n && y==m)
{
cout<<"Yes";
exit(0);
}
for(int i=0; i<=3; i++)
{
int tx=x+dx[i];
int ty=y+dy[i];
if(!vis[tx][ty])
{
vis[tx][ty]=1;
dfs(tx,ty);
}
}
}
int main()
{
cin>>n>>m;
for(int i=1; i<=n ;i++)
{
string s;
cin>>s;
for(int j=0; j<m; j++)
{
a[i][j+1]=s[j];
}
}
dfs(1,1);
cout<<"No";
return 0;
}
怎么样,这是不是很简单呢?
总结
做题要思考!!!