求助,没有输出
查看原帖
求助,没有输出
477058
kevin24楼主2021/7/12 15:33
#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;
}

2021/7/12 15:33
加载中...