#include<iostream>
#include<cstring>
using namespace std;
int n,m,dx[4]={-1,1,0,0},dy[4]={0,0,-1,1},rec[107][107]={};
char mg[107][107];
bool flag=false;
void dfs(int x,int y)
{
if(x==n&&y==m)
{
cout<<"Yes";
exit(0);
}
else
{
for(int i=0;i<4;i++)
{
int xx=x+dx[i];
int yy=y+dy[i];
if(xx>=0&&xx<n&&yy>=0&&yy<m&&mg[xx][yy]=='.'&&rec[xx][yy]==0)
{
rec[xx][yy]=1;
dfs(xx,yy);
rec[xx][yy]=0;
}
}
}
}
int main()
{
cin>>n>>m;
memset(mg,'#',sizeof(mg));
for(int i=0;i<n;i++)
{
for(int j=0;j<m;j++)
{
cin>>mg[i][j];
}
}
rec[0][0]=1;
dfs(0,0);
cout<<"No";
return 0;
}
除了#1其他全TLE(倒)