kevin24 @ 2021-07-12 15:33:54
#include<bits/stdc++.h>
using namespace std;
int steps[1001],ax[1001],ay[1001],x,y,xx,yy,n;
char a[1010][1010];
int dx[4]={-1,1,0,0};
int dy[4]={0,0,-1,1};
void bfs(){
int head=0,tail=1,nx,ny;
steps[1]=1;
ax[1]=x;
ay[1]=y;
while(head<tail){
head++;
for(int i=0;i<=4;i++){
a[ax[head]][ay[head]]='1';
nx=ax[head]+dx[i];
ny=dy[i]+ay[head];
if(a[nx][ny]=='0'&&nx<=n&&nx>0&&ny>0&&ny<=n){
tail++;
ax[tail]=nx;
ay[tail]=ny;
a[nx][ny]='1';
steps[tail]=steps[head]+1;
if(nx==xx&&ny==yy) {
cout<<steps[tail];
return ;
}
}
}
}
}
int main(){
cin>>n;
for(int i=0;i<n;i++)
for(int j=0;j<n;j++)
cin>>a[i][j];
cin>>x>>y>>xx>>yy;
bfs();
return 0;
}
by CodingJellyfish @ 2021-07-12 15:36:55
@奥法猎手
for(int i=0;i<=4;i++)
你这里 RE 了啊,这种 bug 应该自己多调一调才能早点达到我这么高的水平
by Rn_Lamsuly @ 2021-07-12 15:40:54
@CodingJellyfish
tql %%% orz orz orz orz orz
by lighthouse @ 2021-07-12 15:44:05
stO%%% @CodingJellyfish %%%orz
by Rosaya @ 2021-07-12 15:55:34
@奥法猎手
您前面的编号不是0-n编号的吗?
后面那个:
nx<=n&&nx>0&&ny>0&&ny<=n
显然边界错了啊qwq。
by kevin24 @ 2021-07-12 15:56:56
多谢
by CodingJellyfish @ 2021-07-24 07:39:05
卧槽我被机惨了