样例过不去,但是能ac
查看原帖
样例过不去,但是能ac
1522198
cyzs123楼主2025/1/15 18:01

大佬救救,样例过不去,但是能ac,这是为啥啊(求大佬解答,给关)

#include<iostream>
#include<queue>
#include<algorithm>
#include<cstring>
using namespace std;

struct point
{
  int x;
  int y;
  int step;
};

int n,x1,y1,x2,y2;
const int N=1100;
char q[N][N];
bool st[N][N];
queue <point>r;

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

int bfs(int a,int b)
{
    point start;
    start.x=a,start.y=b,start.step=0;
    r.push(start);
    st[a][b]=1;
    while(r.size())
    {
        int x=r.front().x,y=r.front().y;
        if(x==x2&&y==y2)return r.front().step;
        for(int i=0;i<4;i++)
        {
            int tx=x+dx[i],ty=y+dy[i];
            if(tx>1&&ty>1&&tx<=n&&ty<=n&&q[tx][ty]=='0'&&!st[tx][ty])
            {
                point tmp;
                tmp.x=tx,tmp.y=ty;
                tmp.step=r.front().step+1;
                r.push(tmp);
                st[tx][ty]=1;
            }
        }
        r.pop();
    }
}

int main()
{
    cin>>n;
    for(int i=1;i<=n;i++)
        for(int j=1;j<=n;j++)cin>>q[i][j];
    cin>>x1>>y1>>x2>>y2;
    int res=bfs(x1,y1);
    cout<<res<<endl;
    return 0;
}
2025/1/15 18:01
加载中...