zoukankan      html  css  js  c++  java
  • 牛客算法周周练3 A-Jelly(三维bfs找最短路)

    地址:https://ac.nowcoder.com/acm/contest/5338/A

         解析:直接套bfs找最短路的板子就可以了,只是这里是三维,注意一下细节就行了。刚开始不知道三维怎么读入......

    #include<iostream>
    #include<cstdio>
    #include<cstring>
    #include<queue>
    using namespace std;
    const int maxn=105;
    char mp[maxn][maxn][maxn];
    int dis[maxn][maxn][maxn];
    int dx[]={0,0,1,-1,0,0};
    int dy[]={0,0,0,0,-1,1};
    int dz[]={1,-1,0,0,0,0};
    int n;
    struct node
    {
        int x,y,z;
    }st[maxn];
    int bfs()
    {
        queue<node>q;
        memset(dis,-1,sizeof(dis));
        q.push({1,1,1});
        dis[1][1][1]=1;
        while(!q.empty())
        {
            node s=q.front();
            q.pop();
            for(int i=0;i<6;i++)
            {
                int x=s.x+dx[i];
                int y=s.y+dy[i];
                int z=s.z+dz[i];
                if(x>=1&&y>=1&&z>=1&&x<=n&&y<=n&&z<=n&&dis[x][y][z]==-1&&mp[x][y][z]!='*')
                {
                    q.push({x,y,z});
                    dis[x][y][z]=dis[s.x][s.y][s.z]+1;
                }
            }
        }
        return dis[n][n][n];
        
    }
    int main()
    {
    //    int n ; 
        cin>>n;
        for(int k = 1; k<=n;k++)
        {
            for(int i=1;i<=n;i++)
                for(int j=1;j<=n;j++)
                    cin>>mp[i][j][k];
        }
        cout<<bfs()<<endl;
    }
  • 相关阅读:
    元宇宙的特点
    Meta Network
    Decentraland
    Cryptovoxel
    The Sandbox Game
    Roblox
    JAVA参数传递
    静态方法使用@Autowired注入写法
    mysql索引
    Java中锁的分类
  • 原文地址:https://www.cnblogs.com/liyexin/p/12757473.html
Copyright © 2011-2022 走看看