c++MLE 10pts求调
查看原帖
c++MLE 10pts求调
732787
syf_jrym楼主2023/12/3 10:29
#include <bits/stdc++.h>
#define PII pair<int,int>
using namespace std;
int c[1005][1005],cnt[1005][1005];
int dy[5]={0,-1,1,0};
int dx[5]={1,0,0,-1};
int x,y,xx,yy,n;
void bfs(){
	queue<PII>q;
	q.push({x,y});
	int x1,y1,xd,yd;
	while(!q.empty()){
		x1=q.front().first;
		y1=q.front().second;
		for(int i=0;i<4;++i){
			xd=x1+dx[i];
			yd=y1+dy[i];
			if(xd>0&&xd<=n&&yd>0&&yd<=n&&c[xd][yd]==0){
				if(cnt[xd][yd]>cnt[x1][y1]||cnt[xd][yd]==0){
					q.push({xd,yd});
					cnt[xd][yd]=cnt[x1][y1]+1;
				}
			}
		}
		q.pop();
	}
}
int main(){
	cin>>n;
	for(int i=1;i<=n;++i){
		string a;
		cin>>a;
		for(int j=0;j<a.size();++j){
			c[i][j+1]=a[j]-'0';
		}
	}
	cin>>x>>y>>xx>>yy;
	bfs();
	cout<<cnt[xx][yy];
} 
2023/12/3 10:29
加载中...