CE又是smg……
查看原帖
CE又是smg……
285373
abuyao楼主2021/2/26 20:27
#include<bits/stdc++.h>
using namespace std;
const int mx[4]={1,0,-1,0},my[4]={0,1,0,-1};
struct node{
	int x,y,t;
};
char m[1024][1024];
int n,x1,y1,x2,y2;
bool b[1024][1024];
queue<node>q;
int BFS(){
	q.push((node){x1,y1,0});
	node x,y;
	while(!q.empty()){
		x=q.front();
		y.t=x.t+1;
		q.pop();
		for(int i=0;i<4;i++){
			y.x=x.x+mx[i];
			y.y=x.y+my[i];
			if(y.x>0&&y.y>0&&y.x<=n&&y.y<=n&&b[y.x][y.y]&&m[y.x][y.y]=='0'){
				if(y.x==x2&&y.y==y2)return y.t;
				q.push(y);
				b[y.x][y.y]=0;
			}
		}
	}
	return -1;
}
int main(){
	ios_base::sync_with_stdio(0);
	cin.tie(0);
	memset(m,'1',sizeof(m));
	memset(b,1,sizeof(b));
	cin>>n;
	for(int i=1;i<=n;i++)cin>>m[i]+1;
	cin>>x1>>y1>>x2>>y2;
	cout<<BFS()<<endl;
	return 0;
}

RT

2021/2/26 20:27
加载中...