林楚颜 @ 2020-07-29 19:49:50
#include<bits/stdc++.h>
using namespace std;
int a[1050][1050],b[1050][1050],n,m,x,y,dx[]={0,-1,0,1,0},dy[]={0,1,0,-1,0},za,zb;
char cha;
int xa,ya,x2,y2,k;
struct data{int x,y,s;} d,t;
queue<data> q;
int main()
{
cin>>n;
for(int i=1;i<=n;i++)
{
for(int j=1;j<=n;j++)
{
cin>>cha;
a[i][j]=cha-48;
}
}
cin>>x>>y>>za>>zb;
d.x=x;d.y=y;d.s=0;
a[x][y]=2;
q.push(d);
while(!q.empty())
{
t=q.front();q.pop();
xa=t.x;ya=t.y;k=t.s;
for(int i=1;i<=4;i++)
{
x2=t.x+dx[i],y2=t.y+dy[i];
cout<<x2<<y2;
if(x2>=1&&x2<=n&&y2>=1&&y2<=n&&a[x2][y2]==0)
{
if(x2==za&&y2==zb)
{
cout<<k+1;
return 0;
}
else
{
d.x=x2;
d.y=y2;
d.s=k+1;
a[x2][y2]=2;
q.push(d);
}
}
}
}
return 0;
}
求问大佬
by 白厶冯弓吿氵 @ 2020-07-29 21:26:21
@林楚颜 你的偏移量有问题
by 白厶冯弓吿氵 @ 2020-07-29 21:28:19
把这个
dx[]={0,-1,0,1,0},dy[]={0,1,0,-1,0}
改成
dx[]={0,-1,0,1,0},dy[]={0,0,-1,0,1}
就好了
by 林楚颜 @ 2020-08-01 15:16:13
@履带大怪物 谢谢大佬通过修改已经AC