小信的BFS迷宫WA40求调

image
image
code:

#include<bits/stdc++.h>
using namespace std;
int n,m;
int cx,cy,dx,dy;
bool vis[1010][1010];
string s[1010];
int main()
{
	cin>>n>>m;
	cin>>cx>>cy>>dx>>dy;
	cx--;
	cy--;
	dx--;
	dy--;
	for(int i=0;i<n;i++)
	{
		cin>>s[i];
	}
	deque<pair<int,pair<int,int> > >q;
	q.push_front({0,{cx,cy}});
	vis[cx][cy]=1;
	while(!q.empty())
	{
		int x,y,z;
		x=q.front().second.first;
		y=q.front().second.second;
		z=q.front().first;
		q.pop_front();
		if(x==dx&&y==dy)
		{
			cout<<z;
			return 0;
		}
		for(int i=x-2;i<=x+2;i++)
		{
			for(int j=y-2;j<=y+2;j++)
			{
				if(0<=i&&i<n&&0<=j&&j<m)
				{
					if(!vis[i][j])
					{
						if(s[i][j]=='.')
						{
							if((i==x-1||i==x+1||i==x)&&(j==y-1||j==y+1||j==y))
							{
								vis[i][j]=1;
								q.push_front({z,{i,j}});
							}
							else
							{
								vis[i][j]=1;
								q.push_back({z+1,{i,j}});
							}
						}
					}
				}
			}
		}
	}
	cout<<-1;
	return 0;
}

感觉是更新的问题,求调。

此帖子已被社区举报,现已被临时隐藏。

@黎俊博1 你在哇能也帮我看一下吗? 01BFS模板WA40 - 问题讨论区 / 普及段 - 信友队论坛