zoukankan      html  css  js  c++  java
  • [题解]洛谷P1443 马的遍历

    原题

      传送门

    思路

      BFS大力搜索

    代码

    #include<cstdio>
    #include<cstring>
    #include<queue>
    using namespace std;
    
    int dist[401][401],n,m,sx,sy;
    
    int nx[]= {-2,-1,1,2,2,1,-1,-2},ny[]= {1,2,2,1,-1,-2,-2,-1};
    
    struct Node {
        int x,y;
    };
    
    int main() {
        scanf("%d%d%d%d",&n,&m,&sx,&sy);
        queue<Node> q;
        q.push((Node) {
            sx,sy
        });
        memset(dist,-1,sizeof(dist));
        dist[sx][sy]=0;
        while(!q.empty()) {
            Node fr=q.front();
            q.pop();
            int x=fr.x,y=fr.y;
            for(int dir=0; dir<8; dir++) {
                int tagx=x+nx[dir],tagy=y+ny[dir];
                if(dist[tagx][tagy]==-1&&tagx>0&&tagx<=n&&tagy>0&&tagy<=m) {
                    dist[tagx][tagy]=dist[x][y]+1;
                    q.push((Node) {
                        tagx,tagy
                    });
                }
            }
        }
        for(int i=1; i<=n; i++) {
            for(int j=1; j<=m; j++) {
                printf("%-5d",dist[i][j]);
            }
            printf("
    ");
        }
        return 0;
    }
    本篇文章为SHINE_GEEK原创,转载请注明来源!
    written_by:SHINE_GEEK

    -------------------------------------
    签名:自己选的路,跪着也要走完;理想的实现,需要不懈奋斗!
    -------------------------------------
  • 相关阅读:
    出差(十四)确定
    出差(十三)协作
    出差(十二)现状
    出差(十一)变化
    手机的惊险一幕
    出差(十)重复
    出差(九)假象
    出差(八)了解
    出差(七)学习
    Servlet程序开发-- servlet跳转
  • 原文地址:https://www.cnblogs.com/sjrb/p/10295240.html
Copyright © 2011-2022 走看看