【运行错误】求调玄关
  • 板块学术版
  • 楼主san_ming
  • 当前回复0
  • 已保存回复0
  • 发布时间2024/6/2 17:18
  • 上次更新2024/6/2 19:53:00
查看原帖
【运行错误】求调玄关
1271674
san_ming楼主2024/6/2 17:18

rt

#include <bits/stdc++.h>
using namespace std;
int n,p[10010],q[2024601],xx[15]={0,0,0,1,-1},yy[15]={0,1,-1,0,0},ans[2024601],qx,qy,zx,zy;
bool ok[10008][10008];
char a;
void bfs()
{
	int head=1;
	int tail=1;
	p[1]=qx;
	q[1]=qy;
	while(head<=tail)
	{
		for(int i=1;i<=4;i++)
		{
			int h=p[head]+xx[i];
			int l=q[head]+yy[i];
			if(ok[h][l]==1&&h>0&&l>0&&h<=n&&l<=n)
			{
				ok[h][l]=0;
				tail++;
				p[tail]=h;
				q[tail]=l;
				ans[tail]=ans[head]+1;
				if(h==zx&&l==zy)
				{
					cout<<ans[tail]<<endl;
					return ;
				}
			}
		}
		head++;
	}
}
int main() {
	cin>>n;
	for(int i=1;i<=n;i++)
	{
		for(int j=1;j<=n;j++)
		{
			cin>>a;
			if(a!='1')
			{
				ok[i][j]=1;
			}
		}
	}
	cin>>qx>>qy>>zx>>zy;
	if(qx==zx&&qy==zy)
	{
		cout<<"0";
		return 0;
	}
	bfs();

	return 0;
}
2024/6/2 17:18
加载中...