995 WA90分
查看原帖
995 WA90分
1259915
xmy201315楼主2024/12/8 20:39
#include <bits/stdc++.h>
using namespace std;
int n,m;
char s[1005][1005];
const int D[4][2]={{-1,0},{1,0},{0,-1},{0,1}};
int q[100005][2],dist[1005][1005];
bool bfs(int sx,int sy,int ex,int ey){
	memset(dist,255,sizeof(dist));
	int f=1,r=1;
	q[1][0]=sx,q[1][1]=sy;
	dist[sx][sy]=0;
	while(f<=r){
		int x=q[f][0],y=q[f][1];
		++f;
		for(int i=0;i<4;i++){
			int xx=x+D[i][0],yy=y+D[i][1];
			if(xx<0||xx>n||yy<0||yy>m)continue;
			if(s[xx][yy]!='#'&&dist[xx][yy]==-1)dist[xx][yy]=dist[x][y]+1,
			q[++r][0]=xx,q[r][1]=yy;
		}
	}
	if(dist[ex][ey]!=-1)return true;
	return false;
}
int main(){		
	scanf("%d%d",&n,&m);
	for(int i=1;i<=n;i++)cin>>s[i]+1;
	if(bfs(1,1,n,m))puts("Yes");
	else puts("No");
}

本人已找到hack数据,但并未找到WA因

5 5
.....
##.##
#####
.....
.....

大佬们看看吧,球球了

2024/12/8 20:39
加载中...