10分求助
查看原帖
10分求助
572482
Dream_weavers楼主2022/4/30 17:53

rt QAQ

#include<iostream>
#define int long long
using namespace std;
const int N=1005;
int a[N][N];
int n,x1,x2,y1,y2,ans;
char qwq;
int py[4][2]={1,0,0,1,-1,0,0,-1};
void bfs(int x,int y,int cnt){
	if(x==x2&&y==y2){
		ans=max(ans,cnt);
		return ;
	}
	for(int i=0;i<4;i++){
		int kx=x+py[i][0];
		int ky=y+py[i][1];
		if(kx<1||ky<1||kx>n||ky>n||a[kx][ky])continue;
		a[kx][ky]='1';
		bfs(kx,ky,cnt+1);
		//a[kx][ky]='0';
	}
}
signed main(){
	cin>>n;
	for(int i=1;i<=n;i++)
		for(int j=1;j<=n;j++)
			cin>>qwq,a[i][j]=qwq-'0';
	cin>>x1>>y1>>x2>>y2;
	a[x1][y1]=1;
	bfs(x1,y1,0);
	cout<<ans;
    return 0;
}

2022/4/30 17:53
加载中...