POJ2251(三维BFS)

水题。 

#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
using namespace std;
#define inf 0x3f3f3f3f
#define ll long long
const int maxn=35;
const double eps=1e-8;
const double PI = acos(-1.0);
int g[35][35][35],vis[35][35][35];
struct node
{
    int x,y,z,step;
};
int x,y,z;
node s,e;
int dx[]={0,1,0,0,0,-1};
int dy[]={0,0,1,-1,0,0};
int dz[]={1,0,0,0,-1,0};
int bfs()
{
    memset(vis,0,sizeof(vis));
    queue q;
    q.push(s);
    int ans=0;
    while(!q.empty())
    {
        node t=q.front();
       // cout<0&&xx<=x&&yy>0&&yy<=y&&zz<=z&&zz>0&&!vis[zz][xx][yy]&&g[zz][xx][yy]==1)
            {
              //  cout<<"inf: "<>z>>x>>y)
    {

        if(!x&&!y&&!z)
            break;
        for(int i=1;i<=z;i++)
        {
            for(int j=1;j<=x;j++)
            {
                for(int k=1;k<=y;k++)
                {
                    char c;
                    cin>>c;
                    if(c=='#')
                        g[i][j][k]=0;
                    else if(c=='.')
                        g[i][j][k]=1;
                    else if(c=='S')
                    {
                        g[i][j][k]=1;
                        s.x=j;
                        s.y=k;
                        s.z=i;
                        s.step=0;
                    }
                    else if(c=='E')
                    {
                        g[i][j][k]=1;
                        e.x=j;
                        e.y=k;
                        e.z=i;
                        e.step=-1;
                    }
                }
            }
          //  getchar();
        }
      /*  for(int i=1;i<=z;i++)
        {
            for(int j=1;j<=x;j++)
            {
                for(int k=1;k<=y;k++)
                {
                    cout<

 

你可能感兴趣的:(BFS)