社区讨论
求助啊,大佬。
P1746离开中山路参与者 4已保存回复 5
讨论操作
快速查看讨论及其快照的属性,并进行相关操作。
- 当前回复
- 5 条
- 当前快照
- 1 份
- 快照标识符
- @mi7rv7ze
- 此快照首次捕获于
- 2025/11/21 02:36 4 个月前
- 此快照最后确认于
- 2025/11/21 02:36 4 个月前
#include <bits/stdc++.h>
using namespace std;
int const maxn=4000;
int n,xa,ya,xe,ye;
int vis[maxn][maxn];
char ju[maxn][maxn];
int a[maxn*maxn][4];
int dx[6]={0,0,-1,0,1};
int dy[6]={0,-1,0,1,0};
void init()
CPP {
cin>>n;
int i,j;
for(i=1;i<=n;i++)
for( j=1;j<=n;j++)
{
cin>>ju[i][j];
}
}
void bfs(int x,int y)
CPP {
int x3,y3,i;
int head=0, tail=1;
a[1][1]=x;
a[1][2]=y;
a[1][3]=0;
vis[x][y]=1;
do
{
head++;
for( i=1;i<=4;i++)
{
x3=a[head][1]+dx[i];
y3=a[head][2]+dy[i];
if(ju[x3][y3]=='0'&&x3>0&&x3<=n&&y3>0&&y3<=n&&vis[x3][y3]==0)
{
tail++;
a[tail][1]=x3;
a[tail][2]=y3;
a[tail][3]=a[head][3]+1;
vis[x3][y3]==1;
if(x3==xe&&y3==ye)
{
cout<<a[tail][3]<<endl;
exit(0);
}
}
}
} while(head<tail);
}
int main()
CPP {
init();
cin>>xa>>ya>>xe>>ye;
bfs(xa,ya);
return 0;
}
回复
共 5 条回复,欢迎继续交流。
正在加载回复...