本文来源于:http://blog.csdn.net/svitter

称号:让你从(0, 0)走到(4,4)。而且输出路径。

输入数据:二位数组的迷宫;输出数据:路径;

题解:简单的BFS

注意:

1.去重;

2.墙不能走;

3.记录前一个节点

代码:

#include <iostream>
#include <stdio.h>
#include <string.h> using namespace std; int maze[6][6];
bool visit[5][5]; struct node
{
node *pre;
int i;
int j;
node(){}
node(int a, int b, node*c):i(a), j(b), pre(c){}
}; //1.去重
//2.是否墙壁
//
inline bool judge(int i, int j, int temp)
{
if(temp < 0 || temp > 4)
return false; //i, j 能够通行,而且没有訪问过
if(maze[i][j] != 1 && !visit[i][j])
return true; return false; } void output(){} int main()
{
int i, j;
for(i = 0; i < 5; i++)
for(j = 0; j < 5; j++)
scanf("%d", &maze[i][j]); node queue[1000];
memset(visit, 0, sizeof(visit)); int front , rear;
front = rear = -1;
node cur;
int temp;
queue[++rear] = node(4, 4, NULL); while(front != rear)
{
cur = queue[++front];
i = cur.i;
j = cur.j;
if(i == 0 && j == 0)
break; temp = cur.i+1;
if(judge(temp, j, temp))
{
queue[++rear] = node(temp, j, &queue[front]);
visit[temp][j] = 1;
} temp = cur.j+1;
if(judge(i, temp, temp))
{
queue[++rear] = node(i, temp, &queue[front]);
visit[i][temp] = 1;
} temp = cur.i-1;
if(judge(temp, j, temp))
{
queue[++rear] = node(temp, j, &queue[front]);
visit[temp][j] = 1;
} temp = cur .j-1;
if(judge(i, temp, temp))
{
queue[++rear] = node(i, temp, &queue[front]);
visit[i][temp] = 1;
}
} node *tmp;
tmp = &queue[front]; while(tmp != NULL)
{
printf("(%d, %d)\n", tmp->i, tmp->j);
tmp = tmp->pre;
}
return 0;
}

版权声明:本文博客原创文章,博客,未经同意,不得转载。

POJ9384 迷宫(基金会BFS)的更多相关文章

  1. 迷宫问题(bfs)

    import java.util.LinkedList; import java.util.Queue; import java.util.Stack; public class BFS { priv ...

  2. ZZULIOJ 1726 迷宫(BFS+小坑)

    1726: 迷宫 Time Limit: 1 Sec  Memory Limit: 128 MB Submit: 394  Solved: 64 SubmitStatusWeb Board Descr ...

  3. HDU 1728 逃离迷宫(BFS)

    Problem Description 给定一个m × n (m行, n列)的迷宫,迷宫中有两个位置,gloria想从迷宫的一个位置走到另外一个位置,当然迷宫中有些地方是空地,gloria可以穿越,有 ...

  4. HDU 1728:逃离迷宫(BFS)

    http://acm.hdu.edu.cn/showproblem.php?pid=1728 逃离迷宫 Problem Description   给定一个m × n (m行, n列)的迷宫,迷宫中有 ...

  5. 迷宫问题(bfs的应用)

    问题描述: 定义一个二维数组N*M(其中2<=N<=10;2<=M<=10),如5 × 5数组下所示: int maze[5][5] = { 0, 1, 0, 0, 0, 0, ...

  6. [Swust OJ 409]--小鼠迷宫问题(BFS+记忆化搜索)

    题目链接:http://acm.swust.edu.cn/problem/409/ Time limit(ms): 1000 Memory limit(kb): 65535   Description ...

  7. 问题 1923: [蓝桥杯][算法提高VIP]学霸的迷宫 (BFS)

    题目链接:https://www.dotcpp.com/oj/problem1923.html 题目描述 学霸抢走了大家的作业,班长为了帮同学们找回作业,决定去找学霸决斗.但学霸为了不要别人打扰,住在 ...

  8. POJ 3984 - 迷宫问题 - [BFS水题]

    题目链接:http://poj.org/problem?id=3984 Description 定义一个二维数组: int maze[5][5] = { 0, 1, 0, 0, 0, 0, 1, 0, ...

  9. 迷宫问题bfs, A Knight's Journey(dfs)

    迷宫问题(bfs) POJ - 3984   #include <iostream> #include <queue> #include <stack> #incl ...

随机推荐

  1. 第27本:《学得少却考得好Learn More Study Less》

    第27本:<学得少却考得好Learn More Study Less> <学得少却考得好Learn More Study Less>这本书最早是从褪墨网站上看到的,crownc ...

  2. 设计模式之十:观察者模式(Observer)

    观察者模式: 在对象之间定义了一种一对多的依赖关系.当一个对象改变它的状态时,全部依赖它的对象会自己主动接收通知并更新自己的状态. Define a one-to-many dependency be ...

  3. POJ 1753 位运算+枚举

    题意: 给出4*4的棋盘,只有黑棋和白棋,问你最少几步可以使棋子的颜色一样. 游戏规则是:如果翻动一个棋子,则该棋子上下左右的棋子也会翻一面,棋子正反面颜色相反. 思路: 都是暴搜枚举. 第一种方法: ...

  4. Fedora16 安装相关

    安装BCM4312无线网卡驱动 Linux系统BCM4312无线网卡驱动的安装 联想Y450 Linux系统 无线网卡驱动安装 准备工作: Broadcom官网驱动下载地址 http://www.br ...

  5. mysql 利用触发器(Trigger)让代码更简单

    一,什么触发器 1,个人理解 触发器,从字面来理解,一触即发的一个器,简称触发器(哈哈,个人理解),举个例子吧,好比天黑了,你开灯了,你看到东西了.你放炮仗,点燃了,一会就炸了. 2,官方定义 触发器 ...

  6. IOS应用程序生命周期详解

    第一. IOS应用程序的五种状态: 1. Not running:应用还没有启动,或者应用正在运行但是途中被系统停止. 2. Inactive:当前应用正在前台运行,但是并不接收事件(当前或许正在执行 ...

  7. 【LeetCode with Python】 Rotate Image

    博客域名:http://www.xnerv.wang 原标题页:https://oj.leetcode.com/problems/rotate-image/ 题目类型:下标计算 难度评价:★★★ 本文 ...

  8. zigbee学习:示例程序SampleApp中按键工作流程

    zigbee学习:示例程序SampleApp中按键工作流程 本文博客链接:http://blog.csdn.net/jdh99,作者:jdh,转载请注明. 环境: 主机:WIN7 开发环境:IAR8. ...

  9. UIPinchGestureRecognizer 的scale使用

    使用 UIPinchGestureRecognizer 手势可以放大或缩小UIImageView视图.放大或缩小的值是根据 UIPinchGestureRecognizer 的scale决定.这个值在 ...

  10. mybatis与mysql插入时返回主键id的值

    <insert id="insertCharge" parameterType="com.bb.bean.Rechargerecord"> < ...