`
java-mans
  • 浏览: 11413670 次
文章分类
社区版块
存档分类
最新评论

最小步数 n 58 bfs

 
阅读更多

今晚的效率不高,,,,bfs还要再学学啊可怜可怜

#include<stdio.h>
#include<string.h>

int flag[9][9];
int map[9][9]={
  1,1,1,1,1,1,1,1,1,
  1,0,0,1,0,0,1,0,1,
  1,0,0,1,1,0,0,0,1,
  1,0,1,0,1,1,0,1,1,
  1,0,0,0,0,1,0,0,1,
  1,1,0,1,0,1,0,0,1,
  1,1,0,1,0,1,0,0,1,
  1,1,0,1,0,0,0,0,1,
  1,1,1,1,1,1,1,1,1};
  
int dir[4][2]={0,1,1,0,0,-1,-1,0};
int q[100][3];
int front=0,rear=0;
int step=0;

void bfs(int x, int y, int m, int n)
{
     q[rear][0] = x;
     q[rear][1] = y;
     q[rear][2] = step;
     rear++;
     flag[x][y] = 1;        //标记已走过(存入队列) 
     while(front < rear)
     {
          if(q[front][0]==m  &&  q[front][1]==n)
          {printf("%d\n", q[front][2]); break;}
          else
          {
              int i;
              for(i=0;i<4;i++)
              {
                     int tx = q[front][0] + dir[i][0];
                     int ty = q[front][1] + dir[i][1];
                     if(tx>=0 && tx<=8 && ty>=0 && ty<=8)
                     {
                              if(map[tx][ty]!=1 && flag[tx][ty]!=1)
                              {
                                   flag[tx][ty] = 1;
                                   q[rear][0] = tx;
                                   q[rear][1] = ty;
                                   q[rear][2] = q[front][2]+1;
                                   rear++;
                                   flag[tx][ty] = 1;
                              }
                     }
              }
              front++;
          }
     }
     
     
}

int main()
{
    int n, a, b, c, d;
    scanf("%d", &n);
    while(n--)
    {
              memset(flag, 0, sizeof(flag));
              memset(q, 0, sizeof(q));
              step = front = rear = 0;
              scanf("%d%d%d%d", &a, &b, &c, &d);
              bfs(a, b, c, d);            
    }
    return 0;
}


分享到:
评论

相关推荐

    数据结构C++描述

    2.3.3 执行步数 44 2.4 渐进符号(O、 健?、 o) 55 2.4.1 大写O符号 56 2.4.2 椒?58 2.4.3 符号 59 2.4.4 小写o符号 60 2.4.5 特性 60 2.4.6 复杂性分析举例 61 2.5 实际复杂性 66 2.6 性能测量 68 2.6.1 选择...

    C++语言描述(PDF合集)

    2.3.3 执行步数 44 2.4 渐进符号(O、 健?、 o) 55 2.4.1 大写O符号 56 2.4.2 椒?58 2.4.3 符号 59 2.4.4 小写o符号 60 2.4.5 特性 60 2.4.6 复杂性分析举例 61 2.5 实际复杂性 66 2.6 性能测量 68 2.6.1 选择...

    数据结构算法与应用(C++语言描述).rar

    2.3.3 执行步数 44 2.4 渐进符号(O、 健?、 o) 55 2.4.1 大写O符号 56 2.4.2 椒?58 2.4.3 符号 59 2.4.4 小写o符号 60 2.4.5 特性 60 2.4.6 复杂性分析举例 61 2.5 实际复杂性 66 2.6 性能测量 68 2.6.1 选择...

    数据结构 C++描述

    2.3.3 执行步数 44 2.4 渐进符号(O、 健?、 o) 55 2.4.1 大写O符号 56 2.4.2 椒?58 2.4.3 符号 59 2.4.4 小写o符号 60 2.4.5 特性 60 2.4.6 复杂性分析举例 61 2.5 实际复杂性 66 2.6 性能测量 68 2.6.1 选择...

    数据结构算法与应用-C__语言描述

    2.3.3 执行步数 44 2.4 渐进符号(O、 健?、 o) 55 2.4.1 大写O符号 56 2.4.2 椒?58 2.4.3 符号 59 2.4.4 小写o符号 60 2.4.5 特性 60 2.4.6 复杂性分析举例 61 2.5 实际复杂性 66 2.6 性能测量 68 2.6.1 选择...

    数据结构算法与应用-C++语言描述

    2.3.3 执行步数 44 2.4 渐进符号(O、 健?、 o) 55 2.4.1 大写O符号 56 2.4.2 椒?58 2.4.3 符号 59 2.4.4 小写o符号 60 2.4.5 特性 60 2.4.6 复杂性分析举例 61 2.5 实际复杂性 66 2.6 性能测量 68 2.6.1 选择...

    数据结构、算法与应用--C++语言描述

    2.3.3 执行步数 44 2.4 渐进符号(O、 健?、 o) 55 2.4.1 大写O符号 56 2.4.2 椒?58 2.4.3 符号 59 2.4.4 小写o符号 60 2.4.5 特性 60 2.4.6 复杂性分析举例 61 2.5 实际复杂性 66 2.6 性能测量 68 2.6.1 选择...

    数据结构(C语言描述)

    2.3.3 执行步数 44 2.4 渐进符号(O、 健?、 o) 55 2.4.1 大写O符号 56 2.4.2 椒?58 2.4.3 符号 59 2.4.4 小写o符号 60 2.4.5 特性 60 2.4.6 复杂性分析举例 61 2.5 实际复杂性 66 2.6 性能测量 68 2.6.1 选择...

    数据结构算法与应用-C C++语言描述

    2.3.3 执行步数 44 2.4 渐进符号(O、 健?、 o) 55 2.4.1 大写O符号 56 2.4.2 椒?58 2.4.3 符号 59 2.4.4 小写o符号 60 2.4.5 特性 60 2.4.6 复杂性分析举例 61 2.5 实际复杂性 66 2.6 性能测量 68 2.6.1 选择...

    数据结构算法与应用-C++语言描述.rar

    2.3.3 执行步数 44 2.4 渐进符号(O、 健?、 o) 55 2.4.1 大写O符号 56 2.4.2 椒?58 2.4.3 符号 59 2.4.4 小写o符号 60 2.4.5 特性 60 2.4.6 复杂性分析举例 61 2.5 实际复杂性 66 2.6 性能测量 68 ...

    数据结构与算法:C++描述

    2.3.3 执行步数 44 2.4 渐进符号(O、 健?、 o) 55 2.4.1 大写O符号 56 2.4.2 椒?58 2.4.3 符号 59 2.4.4 小写o符号 60 2.4.5 特性 60 2.4.6 复杂性分析举例 61 2.5 实际复杂性 66 2.6 性能测量 68 2.6.1 选择...

    数据结构算法与应用 很详细的,数据结构算法全集 这个是你想找的

    程序性能 30 2.1 引言 30 2.2 空间复杂性 31 2.2.1 空间复杂性的组成 31 2.2.2 举例 35 2.3 时间复杂性 37 2.3.1 时间复杂性的组成 37 2.3.2 操作计数 37 2.3.3 执行步数 44 2.4 渐进...

Global site tag (gtag.js) - Google Analytics