求助!!!
查看原帖
求助!!!
208161
penghongxiang楼主2020/8/7 10:49
#include<bits/stdc++.h>
using namespace std;
int ans[1010][1010],x1,x2,y_,y2,n,dx[5]={0,1,-1,0,0},dy[5]={0,0,0,1,-1};
char a[1010][1010];
bool b[1010][1010];
struct mg
{
	int x,y;
};
queue <mg> q;
int main()
{
	scanf("%d",&n);
	for(int i=1;i<=n;i++)
	{
		for(int j=1;j<=n;j++)
		{
			a[i][j]=getchar();
		}
		getchar();
	}
	scanf("%d%d%d%d",&x1,&y_,&x2,&y2);
	mg w;
	w.x=x1,w.y=y_;
	q.push(w);
	ans[w.x][w.y]=0;
	while(!q.empty())
	{
		mg xy=q.front();
		for(int i=1;i<=4;i++)
		{
			if(xy.x+dx[i]>=1&&xy.y+dy[i]>=1&&xy.x+dx[i]<=n&&xy.y+dy[i]<=n&&a[xy.x+dx[i]][xy.y+dy[i]]!='1'&&!b[xy.x+dx[i]][xy.y+dy[i]])
			{
				mg _;
				_.x=xy.x+dx[i],_.y=xy.y+dy[i];
				b[_.x][_.y]=true;
				q.push(_);
				ans[_.x][_.y]=ans[xy.x][xy.y]+1;
			}
		}
		q.pop();
	}
	printf("%d",ans[x2][y2]);
	return 0;
}

爆0了!请各位大佬帮忙改改,谢谢(鞠躬)

2020/8/7 10:49
加载中...