60分求调
查看原帖
60分求调
865793
better_Z楼主2023/5/9 22:14
#include<iostream>

#include<queue>

#include<cstring>

#include<cstdio>

#define maxn 420

using namespace std;

int py[8][2]={{-1,-2},{1,2},{-2,-1},{2,1},{-1,2},{2,-1},{-2,1},{1,-2}};

struct cood{

    int x,y;

};

int n,m,ux,uy;

int d=1;

int a[maxn][maxn];

queue<cood> Q;

int main(){

memset(a,-1,sizeof(a));

    cin>>n>>m>>ux>>uy;

    a[ux][uy]=0;

    cood u={ux,uy};

    Q.push(u);

    while(!Q.empty()){

        cood u=Q.front();

        int sx=u.x,sy=u.y;

        Q.pop();

        for(int i=0;i<8;i++){

            int dx=sx+py[i][0],dy=sy+py[i][1];

            if(dx<1||dx>m||dy<1||dy>m||a[dx][dy]!=-1)continue;

            a[dx][dy]=a[sx][sy]+d;

            cood f={dx,dy};

            Q.push(f);

        }

    }

    for(int i=1;i<=n;i++){

        for(int j=1;j<=m;j++){

            printf("%-5d",a[i][j]);

        }

        puts("");

    }

    return 0;

}
2023/5/9 22:14
加载中...