80分,求调
查看原帖
80分,求调
1199520
Deutschland_Ball楼主2024/7/20 16:20
#include <bits/stdc++.h>
using namespace std;
typedef long long int lint;
const int N=106;
struct node{
	int x,y;
}q[N*N];
int n,m,head,tail;
char mp[N][N];
bool mk[N][N],flag;
int main(){
	cin>>n>>m;
	for(int i=1;i<=n;i++)
	{
		for(int j=1;j<=n;j++
		){
				cin>>mp[i][j];
	}
	}
	head=tail=1;
	q[tail].x=1,q[tail].y=1;
	tail++;
	int dx[5]={0,-1,0,1},dy[5]{-1,0,1,0};
	while(head<tail)
	{
		for(int i=0;i<4;i++)
		{
			int tx=q[head].x+dx[i];
			int ty=q[head].y+dy[i];
			if(tx<1||tx>m||ty<1||ty>n)
				continue;
			if(mp[tx][ty]!='#'&&mk[tx][ty]==false
			){
				q[tail].x=tx,q[tail].y=ty;
				tail++;
				mk[tx][ty]=true;
			}
			if(tx==m&&ty==n)
			{
				flag=true;
				break;
			}
		}
		if(flag==true){
			break;
			}
		head++;
	}
	if(flag) cout<<"Yes";
	else cout<<"No";
	return 0;


}

2024/7/20 16:20
加载中...