RT 样例过了但是全WA
起始坐标我设成了s1,e1 终点是s2,e2
#include<bits/stdc++.h>
using namespace std;
int n;
int s1,s2,e1,e2;
char a[1001][1001];
bool b[1001][1001];
int dx[5]={0,1,0,0,-1};
int dy[5]={0,0,1,-1,0};
queue< pair<int,int> > q;
int bfs(int k){
for(int i=1;i<=q.size();i++){
int sx=q.front().first,sy=q.front().second;
q.pop();
for(int j=1;j<=4;j++){
int ex=sx+dx[j],ey=sy+dy[j];
if(ex==s2&&ey==e2) return k;
if(ex>=1&&ex<=n&&ey>=1&&ey<=n&&b[ex][ey]==0&&a[ex][ey]=='0'){
b[ex][ey]=1;
q.push(make_pair(ex,ey));
}
}
}
bfs(k+1);
}
int main(){
cin>>n;
for(int i=1;i<=n;i++){
for(int j=1;j<=n;j++){
cin>>a[i][j];
}
}
cin>>s1>>e1>>s2>>e2;
b[s1][e1]=1;
q.push(make_pair(s1,e1));
cout<<bfs(1);
return 0;
}
希望有DALAO帮助QAQ