社区讨论

求助啊,大佬。

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 条回复,欢迎继续交流。

正在加载回复...