60分求助
查看原帖
60分求助
1230616
GEZHENHAO楼主2024/7/11 14:52
#include<bits/stdc++.h>
using namespace std;
int a[100][100],dx[5]{0,1,-1,0,0},dy[5]{0,0,0,1,-1};
bool vis[100][100];
int n,m,t,tx,ty,ans=0;
void dfs(int x,int y)
{
    if(x==n&&y==m)
    {
    	ans=1;
    	return;
	}
  for (int i=1;i<=4;i++)
  {
  	int nx=x+dx[i];
  	int ny=y+dy[i];
  	if ((nx>=1&&nx<=n)&&(ny>=1&&ny<=m)&&(a[nx][ny]==0)&&(!vis[nx][ny]))
  	{
  		vis[nx][ny]=1;
	 	dfs(nx,ny);
	 }
  }
}  
int main()  
{   
    cin>>n>>m;
    string c; 
    for (int i=1;i<=n;i++)
    {
    	cin>>c;
		for (int j=0;j<=m;j++)
		{
			if (c[j]=='#')
			{
				vis[i][j]=1;
			}
			
		}
	}
	vis[1][1]=1;
	dfs(1,1);
	if (ans)
	{
		cout<<"Yes";
	 } 
	 else
	 {
	 	cout<<"No";
	 }
    return 0;  
}  
2024/7/11 14:52
加载中...