POJ3984 迷宫问题(BFS 记忆路径)

来源:互联网 发布:衡水中学素质教育 知乎 编辑:程序博客网 时间:2024/05/15 06:12
迷宫问题
Time Limit:1000MS     Memory Limit:65536KB     64bit IO Format:%I64d & %I64u
Submit Status Practice POJ 3984
Appoint description: 

Description

定义一个二维数组: 
int maze[5][5] = { 0, 1, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 1, 0,};

它表示一个迷宫,其中的1表示墙壁,0表示可以走的路,只能横着走或竖着走,不能斜着走,要求编程序找出从左上角到右下角的最短路线。

Input

一个5 × 5的二维数组,表示一个迷宫。数据保证有唯一解。

Output

左上角到右下角的最短路径,格式如样例所示。

Sample Input

0 1 0 0 00 1 0 1 00 0 0 0 00 1 1 1 00 0 0 1 0

Sample Output

(0, 0)(1, 0)(2, 0)(2, 1)(2, 2)(2, 3)(2, 4)(3, 4)(4, 4)
#include<stdio.h>#include<string.h>#include<stdlib.h>int map[10][10];int v[100][100];int n,m;int jx[] = {0,1,-1,0};int jy[] = {1,0,0,-1};int tt;struct node{    int x,y,z;}q[10000];void tf(int k){    if(q[k].z!=-1)    {        tf(q[k].z);        printf("(%d, %d)\n",q[k].x,q[k].y);    }}void BFS(int s,int e){    memset(v,0,sizeof(v));    struct node t,f;    int i;    t.x = s;    t.y = e;    t.z = -1;    v[t.x][t.y] = 1;    q[e++] = t;    while(s<e)    {        t = q[s++];        if(t.x == 4 && t.y == 4)        {            printf("(0, 0)\n");            tf(s-1);            return ;        }        for(i=0;i<4;i++)        {            f.x = t.x + jx[i];            f.y = t.y + jy[i];            if(f.x>=0 && f.x<=4 && f.y>=0 && f.y<=4 && map[f.x][f.y] == 0 && v[f.x][f.y] == 0)            {                f.z = s-1;                q[e++] = f;                v[f.x][f.y] = 1;            }        }    }}int main(){    int i,j;    tt = 0;    n = 5;    m = 5;    for(i=0;i<n;i++)    {        for(j=0;j<5;j++)        {            scanf("%d",&map[i][j]);        }    }    BFS(0,0);    return 0;}

0 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 考研但是大四上课多怎么办 试管促排卵泡少怎么办 京东退货卖家拒收怎么办 京东退货被卖家拒收怎么办 期货平台跑路了怎么办 浮云牧场没房了怎么办 融资股票停牌了怎么办 买入的股票停牌怎么办 淘宝抢到便宜货老板不发货怎么办 微信代购买到假货了怎么办 微信代购收到假货怎么办 苹果商店下载很慢怎么办 谷歌商店下载东西慢怎么办 买家说少发货了怎么办 人肉代购被海关扣了怎么办 韩国代购被海关扣了怎么办 爱奇艺开通自动续费忘了账号怎么办 小米手机云储存空间不足怎么办 路由器被黑了打不开网页怎么办 致人轻伤跑了怎么办 轻伤对方要30万怎么办 老公用老婆的钱怎么办 想注册个公司要怎么办 域名续费不知道找谁怎么办 代收快递弄丢了怎么办 货到付款的快递人不在怎么办 快递送货上门人不在怎么办 ems快递签收人不在怎么办 快递被别人取了怎么办 怎么办快递宗和收发点 快递电话写错了怎么办 网上买沙发想退货怎么办 买的电脑想退货怎么办 买了衣服想退货怎么办 天猫买药审核通过后不要了怎么办 京东维修无发票怎么办 京东维修没有发票怎么办 苹果6s外音没了怎么办 苹果6splus开不了机怎么办 顺丰快递寄件填错收件人地址怎么办 收快递电话换了怎么办