求助!!!

P1746 离开中山路

penghongxiang @ 2020-08-07 10:49:55

#include<bits/stdc++.h>
using namespace std;
int ans[1010][1010],x1,x2,y_,y2,n,dx[5]={0,1,-1,0,0},dy[5]={0,0,0,1,-1};
char a[1010][1010];
bool b[1010][1010];
struct mg
{
    int x,y;
};
queue <mg> q;
int main()
{
    scanf("%d",&n);
    for(int i=1;i<=n;i++)
    {
        for(int j=1;j<=n;j++)
        {
            a[i][j]=getchar();
        }
        getchar();
    }
    scanf("%d%d%d%d",&x1,&y_,&x2,&y2);
    mg w;
    w.x=x1,w.y=y_;
    q.push(w);
    ans[w.x][w.y]=0;
    while(!q.empty())
    {
        mg xy=q.front();
        for(int i=1;i<=4;i++)
        {
            if(xy.x+dx[i]>=1&&xy.y+dy[i]>=1&&xy.x+dx[i]<=n&&xy.y+dy[i]<=n&&a[xy.x+dx[i]][xy.y+dy[i]]!='1'&&!b[xy.x+dx[i]][xy.y+dy[i]])
            {
                mg _;
                _.x=xy.x+dx[i],_.y=xy.y+dy[i];
                b[_.x][_.y]=true;
                q.push(_);
                ans[_.x][_.y]=ans[xy.x][xy.y]+1;
            }
        }
        q.pop();
    }
    printf("%d",ans[x2][y2]);
    return 0;
}

爆0了!请各位大佬帮忙改改,谢谢(鞠躬)


by 小胖同学 @ 2020-08-07 21:25:21

这道题不难 我还没有下课 明天给你看看


你学到哪里了?

------------
???????

|