#include<bits/stdc++.h>
using namespace std;
int m,n;
char mp[1001][1001];
int dx[6]={0,0,0,-1,1};
int dy[6]={0,-1,1,0,0};
void vis(int x,int y)
{
mp[x][y]='#';
}
bool dfs(int x,int y)
{
if(x==n&&y==m) return true;
if(mp[x+dx[1]][y+dy[1]]=='#'&&mp[x+dx[2]][y+dy[2]]=='#'&&mp[x+dx[3]][y+dy[3]]=='#'&&mp[x+dx[4]][y+dy[4]]=='#')
return false;
for(int i=1;i<=4;i++)
{
if(mp[x+dx[i]][y+dy[i]]=='.')
{
vis(x+dx[i],y+dy[i]);
dfs(x+dx[i],y+dy[i]);
}
}
}
int main()
{
memset(mp,'#',sizeof(mp));
cin>>n>>m;
for(int i=1;i<=m;i++)
{
for(int j=1;j<=n;j++)
{
cin>>mp[i][j];
}
}
if(dfs(1,1))
{
cout<<"Yes";
}
else
{
cout<<"No";
}
return 0;
}
https://www.luogu.com.cn/record/167960659
我这还有输出的,这里直接RE了 求大佬帮忙调qaq