RE?
  • 板块B3625 迷宫寻路
  • 楼主HUTEHE
  • 当前回复0
  • 已保存回复0
  • 发布时间2024/4/10 16:51
  • 上次更新2024/4/10 19:49:29
查看原帖
RE?
1086575
HUTEHE楼主2024/4/10 16:51
#include<bits/stdc++.h>
#define int long long 
using namespace std;
int m,n;
char mp[105][105];
int dir_x[5]={0,1,0,-1,0};
int dir_y[5]={0,0,1,0,-1}; 
bool vis[105][105];
bool flag;
void dfs(int x,int y)
{
	if(x==n&&y==m)
	{
		flag=true;
		return ;
	}
	for(int i=1;i<=4;i++)
	{
	
		int tx=x+dir_x[i];
		int ty=y+dir_y[i];
	
		
		if(tx>=1&&ty>=1&&tx<=n&&ty<=m&&!vis[tx][ty]&&!flag&&mp[tx][ty]=='.')
		{
			vis[x][y]=true;	
			dfs(tx,ty);
			
		}
	}
}
signed main()
{
	cin>>n>>m;
	for(int i=1;i<=n;i++)
	{
		for(int j=1;j<=m;j++)
		{
			cin>>mp[i][j];
		}
	}
	if(mp[n][m]=='#'||mp[1][1]=='#')
	{
		cout<<"NO";
		return 0;
	}
	else
	{
		dfs(1,1);
		if(flag)
		{
			cout<<"Yes";
		}
		else
		{
			cout<<"No";
		}
	}
	return 0;
}

测试是对的why?

2024/4/10 16:51
加载中...