#BFS#C++#萌新#无输出求助

P1746 离开中山路

林楚颜 @ 2020-07-29 19:49:50

#include<bits/stdc++.h>
using namespace std;
int a[1050][1050],b[1050][1050],n,m,x,y,dx[]={0,-1,0,1,0},dy[]={0,1,0,-1,0},za,zb;
char cha;
int xa,ya,x2,y2,k;
struct data{int x,y,s;} d,t;
queue<data> q;
int main()
{
  cin>>n;
  for(int i=1;i<=n;i++)
  {
    for(int j=1;j<=n;j++)
    {
      cin>>cha;
      a[i][j]=cha-48;
    }
  }
  cin>>x>>y>>za>>zb;
  d.x=x;d.y=y;d.s=0;
  a[x][y]=2;
  q.push(d);
  while(!q.empty())
  {
    t=q.front();q.pop();
    xa=t.x;ya=t.y;k=t.s;
    for(int i=1;i<=4;i++)
    {
      x2=t.x+dx[i],y2=t.y+dy[i];
      cout<<x2<<y2;
      if(x2>=1&&x2<=n&&y2>=1&&y2<=n&&a[x2][y2]==0)
      {
        if(x2==za&&y2==zb)
         {
           cout<<k+1;
           return 0;
         }
         else
        {
          d.x=x2;
          d.y=y2;
          d.s=k+1;
          a[x2][y2]=2;
          q.push(d);
        }
      }
    }
  }
  return 0;
}

求问大佬


by 白厶冯弓吿氵 @ 2020-07-29 21:26:21

@林楚颜 你的偏移量有问题


by 白厶冯弓吿氵 @ 2020-07-29 21:28:19

把这个

dx[]={0,-1,0,1,0},dy[]={0,1,0,-1,0}

改成

dx[]={0,-1,0,1,0},dy[]={0,0,-1,0,1}

就好了


by 林楚颜 @ 2020-08-01 15:16:13

@履带大怪物 谢谢大佬通过修改已经AC


|