penghongxiang @ 2020-08-07 10:49:55
#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;
}
by 小胖同学 @ 2020-08-07 21:25:21
这道题不难 我还没有下课 明天给你看看
你学到哪里了?
------------
???????