zoukankan      html  css  js  c++  java
  • hdu 1253

    #include<cstdio>
    #include<iostream>
    #include<queue>
    #include<cstring>
    using namespace std;
    int s[55][55][55];
    int used[55][55][55];
    int bzx[55]={1,-1,0,0,0,0};
    int bzy[55]={0,0,1,-1,0,0};
    int bzz[55]={0,0,0,0,1,-1};
    int a,b,c,t,flag=0;
    struct node
    {    int x,y,z,step;};
    int bfs(int k1,int k2,int k3)
    {    int i;
        queue<node>q;
        node s1,s2;
        s1.x=k1;   s1.y=k2;   s1.z=k3;  s1.step=0; 
        q.push(s1);
        used[k1][k2][k3]=1;
        while(!q.empty())
        {    s1=q.front();
            if(s1.x==a-1&&s1.y==b-1&&s1.z==c-1&&s1.step<=t)
                return s1.step; 
            for(i=0;i<6;i++)
            {    s2.x=s1.x+bzx[i];  s2.y=s1.y+bzy[i];  s2.z=s1.z+bzz[i];
                if(s2.x<a&&s2.x>=0&&s2.y<b&&s2.y>=0&&s2.z<c&&s2.z>=0&&0==used[s2.x][s2.y][s2.z]&&0==s[s2.x][s2.y][s2.z])
                {    s2.step=s1.step+1;
                    used[s2.x][s2.y][s2.z]=1;
                    q.push(s2);
                }
            }
            q.pop();
        }
        return -1;
    }
    int main()
    {
        int m,i,j,k;
        cin>>m;
        while(m--)
        {    cin>>a>>b>>c>>t;
            for(i=0;i<a;i++)
                for(j=0;j<b;j++)
                    for(k=0;k<c;k++)
                        scanf("%d",&s[i][j][k]);
            memset(used,0,sizeof(used));
            printf("%d
    ",bfs(0,0,0));
        }
        return 0;
    }
    View Code
     
    #include<cstdio>
    #include<iostream>
    #include<queue>
    #include<cstring>
    using namespace std;
    int s[55][55][55];
    int used[55][55][55];
    int bzx[55]={1,-1,0,0,0,0};
    int bzy[55]={0,0,1,-1,0,0};
    int bzz[55]={0,0,0,0,1,-1};
    int a,b,c,t,flag=0;
    struct node
    { int x,y,z,step;};
    int bfs(int k1,int k2,int k3)
    { int i;
    queue<node>q;
    node s1,s2;
    s1.x=k1;   s1.y=k2;   s1.z=k3;  s1.step=0; 
    q.push(s1);
    used[k1][k2][k3]=1;
    while(!q.empty())
    { s1=q.front();
    if(s1.x==a-1&&s1.y==b-1&&s1.z==c-1&&s1.step<=t)
    return s1.step; 
    for(i=0;i<6;i++)
    { s2.x=s1.x+bzx[i];  s2.y=s1.y+bzy[i];  s2.z=s1.z+bzz[i];
    if(s2.x<a&&s2.x>=0&&s2.y<b&&s2.y>=0&&s2.z<c&&s2.z>=0&&0==used[s2.x][s2.y][s2.z]&&0==s[s2.x][s2.y][s2.z])
    { s2.step=s1.step+1;
    used[s2.x][s2.y][s2.z]=1;
    q.push(s2);
    }
    }
    q.pop();
    }
    return -1;
    }
    int main()
    {
    int m,i,j,k;
    cin>>m;
    while(m--)
    { cin>>a>>b>>c>>t;
    for(i=0;i<a;i++)
    for(j=0;j<b;j++)
    for(k=0;k<c;k++)
    scanf("%d",&s[i][j][k]);
    memset(used,0,sizeof(used));
    printf("%d ",bfs(0,0,0));
    }
    return 0;
    }
  • 相关阅读:
    布隆过滤器
    string.ToString("X")的含义,转换为16进制
    Stream.Write()和Stream.Read(), Stream.Flush的作用,待学习
    linux查看CPU,内存使用情况
    HttpContext.Current.Request.InputStream
    程序员常去的10个顶级开发社区
    JavaScript 对象初探
    PHP – 架構設計 Data Access Layer 篇
    如何用 JavaScript 动态呼叫函数
    PHP – EasyUI DataGrid 资料存的方式
  • 原文地址:https://www.cnblogs.com/2014acm/p/3898147.html
Copyright © 2011-2022 走看看