P1746 求助
查看原帖
P1746 求助
173612
ConstantIce楼主2022/5/12 18:50

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

2022/5/12 18:50
加载中...