欢迎光临散文网 会员登陆 & 注册

马的遍历luogu1443

2023-07-11 17:36 作者:SpiderMonkeyLing  | 我要投稿

#include <bits/stdc++.h>
using namespace std;
int n,m,x,y;
int dx[9]={0,-2,-1,1,2,2,1,-1,-2};
int dy[9]={0,1,2,2,1,-1,-2,-2,-1};
const int N=400;
int d[N][N];
typedef pair<int,int> PII;
PII q[N*N];
void bfs(int x,int y) {
    memset(d,-1,sizeof d);
    q[0]={x,y};
    d[x][y]=0;
    int hh=0,tt=0;
    while(hh<=tt) {
        PII t=q[hh++];
        for(int i=1;i<=8;i++) {
            int a=t.first+dx[i];
            int b=t.second+dy[i];
            if(a>=1&&a<=n&&b>=1&&b<=m&&d[a][b]==-1) {
                q[++tt]={a,b};
                d[a][b]=d[t.first][t.second]+1;
            }
        }
    }
}
int main() {
    cin>>n>>m>>x>>y;
    bfs(x,y);
    for(int i=1;i<=n;i++) {
        for(int j=1;j<=m;j++) {
            cout<<d[i][j]<<" ";
        }
        cout<<endl;
    }
    return 0;
}

马的遍历luogu1443的评论 (共 条)

分享到微博请遵守国家法律