码迷,mamicode.com
首页 > 其他好文 > 详细

[uva11OPEN]玉米田迷宫Corn Maze(广搜bfs)

时间:2019-08-24 22:33:05      阅读:98      评论:0      收藏:0      [点我收藏+]

标签:head   names   c++   efi   bfs   space   广搜   info   namespace   

 

 

 

第一次做MLE了…第二次WA了5个点,其实就是一个判断错了…QAQ总的来说…是个水题/板子题(逃

技术图片

 

技术图片

#include<bits/stdc++.h>
using namespace std;
#define For(i,l,r) for(register int i=l; i<r; i++)
int n,m; 
int d[4][2] = { 0, 1, 0, -1, 1, 0, -1, 0 };
bool bj,vis[301][301];
char ch[301][301];
struct cs{
    int x1,y1,x2,y2;
    bool p;
}chs[35];

struct node {
    int x, y, t;
} q[90001];

inline bool check(int x, int y)
{
  return x >= 0 && y >= 0 && x < n && y < m && vis[x][y] == 0;
} 

int main()
{
  int sx,sy,ex,ey;
  string s;
  scanf("%d%d",&n,&m);
  For(i,0,n){
      cin>>s; 
   For(j,0,m){
       if(s[j] == =)ex = i, ey = j;
       else if(s[j] == #)vis[i][j]=1;
       else if(s[j] == @)sx = i, sy = j;
       else if(s[j] >= A && s[j] <= Z){
           int c = s[j]-A;
        ch[i][j] = s[j];
           if (chs[c].p == 1)chs[c].x2 = i, chs[c].y2 = j;  //就是这儿的判断!555查了一晚上_(:3/)__
        else chs[c].x1 = i, chs[c].y1 = j, chs[c].p = 1;
       }
   }    
  }
  int head = 0, tail = 1;
  q[tail].x = sx, q[tail].y = sy;
  vis[sx][sy] = 1;
  while(head < tail){
      head++;
      int xn = q[head].x, yn = q[head].y;
      For(i,0,4){
          int dx = d[i][0] + xn;
        int dy = d[i][1] + yn;
        if(check(dx,dy)){
          vis[dx][dy] = 1;
          if(ch[dx][dy] >= A && ch[dx][dy] <= Z){
              int c = ch[dx][dy] - A;
              if (dx == chs[c].x1 && dy == chs[c].y1)
                dx = chs[c].x2, dy = chs[c].y2;
            else
                dx = chs[c].x1, dy = chs[c].y1;
          }
          q[++tail].x = dx;
          q[tail].y = dy;
          q[tail].t = q[head].t + 1;
          if(dx == ex && dy == ey){
              cout << q[tail].t;
              return 0;
          }
        }
      }
  }   
}

 

[uva11OPEN]玉米田迷宫Corn Maze(广搜bfs)

标签:head   names   c++   efi   bfs   space   广搜   info   namespace   

原文地址:https://www.cnblogs.com/phemiku/p/11406293.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!