3752:走迷宫
查看提交统计提示提问
总时间限制:  1000ms  内存限制:  65536kB
描述
一个迷宫由R行C列格子组成,有的格子里有障碍物,不能走;有的格子是空地,可以走。
给定一个迷宫,求从左上角走到右下角最少需要走多少步(数据保证一定能走到)。只能在水平方向或垂直方向走,不能斜着走。
输入
第一行是两个整数,R和C,代表迷宫的长和宽。( 1<= R,C <= 40)
接下来是R行,每行C个字符,代表整个迷宫。
空地格子用'.'表示,有障碍物的格子用'#'表示。
迷宫左上角和右下角都是'.'。
输出
输出从左上角走到右下角至少要经过多少步(即至少要经过多少个空地格子)。计算步数要包括起点和终点。
样例输入
5 5
..###
#....
#.#.#
#.#.#
#.#..
样例输出
9
---------------------------------------------------------------------------------------------------------------------------------

#include<bits/stdc++.h>
using namespace std;
int ss[105][105],flag[105][105];
int dx[12]={0,1,0,-1};
int dy[12]={1,0,-1,0};//上下左右 
int main()
{
     char ch;
    int que[10005][4]={0},x1,y1,i,j;
    int s=1,e=1;
    memset(ss,-1,sizeof(ss));//将ss中当前位置后面的sizeof(ss)个字节 
    que[1][1]=1;
    que[1][2]=1;
    que[1][3]=0;
    cin>>x1>>y1;//输入迷宫大小 
    for(i=1;i<=x1;i++)
    {
          for(j=1;j<=y1;j++)
          {
                cin>>ch;//输入迷宫 
              if(ch=='.')
                flag[i][j]=0;//判断是否能走 
               else
            flag[i][j]=1; 
          }
      }
     while(s<=e)
     {
         for(int d=0;d<=11;d++)
          {
               int x=que[s][1]+dx[d];
               int y=que[s][2]+dy[d];
               if(x>0 && x<=100 && y>0 && y<=100 && flag[x][y]==0)
               {
                if(ss[x][y]==-1)
                    {
                     ss[x][y]=que[s][3]+1;
                     e++;
                     que[e][1]=x;
                     que[e][2]=y;
                     que[e][3]=ss[x][y];//套广度优先搜索模板 
                     if(ss[x1][y1]>0)
                     {
                          cout<<ss[x1][y1]+1<<endl;//由于没有算第一步,所以将答案加一 
                           return 0;
                     }
                }
                }
           }
    s++;
      }
     return 0; 
}

信息奥赛一本通《走迷宫》相关推荐

  1. 信息奥赛一本通的递推练习

    信息奥赛一本通的递推练习 递推与动态规划 1313:位数问题 1314:过河卒 1194:移动路线 1196:踩方格 递推与动态规划 递推解决的问题中满足最优化原理的也是属于动态规划范畴 1313:位 ...

  2. 信息奥赛一本通 三角形最佳路径问题 (1288) 题解

    信息奥赛一本通 三角形最佳路径问题 (1288) 题解 时间限制: 1000 ms 内存限制: 65536 KB 题目描述 如下所示的由正整数数字构成的三角形: 7 3 8 8 1 0 2 7 4 4 ...

  3. 【算法•日更•第十二期】信息奥赛一本通1585:【例 1】Amount of Degrees题解

    废话不多说,直接上题: 1585: [例 1]Amount of Degrees 时间限制: 1000 ms         内存限制: 524288 KB 提交数: 130     通过数: 68 ...

  4. 信息奥赛一本通1215:迷宫

    [题目描述] 一天Extense在森林里探险的时候不小心走入了一个迷宫,迷宫可以看成是由n * n的格点组成,每个格点只有2种状态,.和#,前者表示可以通行后者表示不能通行.同时当Extense处在某 ...

  5. 2038:最大数位置(题目来源于信息奥赛一本通官网)

    2038:[例5.5]最大数位置 时间限制: 1000 ms         内存限制: 65536 KB 提交数: 4876     通过数: 3175 [题目描述] 输入n 个整数,存放在数组a[ ...

  6. HOJ 系统常用功能介绍 部署快速入门 c++ python java编程语言在线自动评测 信息奥赛一本通 USACO GESP 洛谷 蓝桥 CSP NOIP题库

    技术支持微 makytony 服务器配置需求 腾讯云 2H4G 5M 60GB 轻量应用服务器  承载大约 200~400人使用,经过压力测试,评测并发速度可满足130人左右的在线比赛. 系统镜像选 ...

  7. 【算法•日更•第十四期】信息奥赛一本通1592:【例 1】国王题解

    废话不多说,直接上题: 1592:[例 1]国王 时间限制: 500 ms         内存限制: 65536 KB 提交数: 290     通过数: 111 [题目描述] 原题来自:SGU 2 ...

  8. 信息奥赛一本通1232:Crossing River

    [题目描述] 几个人过河,每次过两人一人回,速度由慢者决定,问过河所需最短时间. [输入] 输入t组数据,每组数据第1行输入n,第2行输入n个数,表示每个人过河的时间. [输出] 输出t行数据,每行1 ...

  9. 信息奥赛一本通1486: CH 6202 黑暗城堡 最短路径生成树计数

    1486:黑暗城堡 [题目描述] 知道黑暗城堡有 N 个房间,M 条可以制造的双向通道,以及每条通道的长度. 城堡是树形的并且满足下面的条件: 设 Di为如果所有的通道都被修建,第 i 号房间与第 1 ...

最新文章

  1. linux message日志只有4k,命令长期运行 常用技巧 Linux 服务器 · 404k的前后端日志...
  2. [现代操作系统] 考前突击
  3. python:实现简单的web开发demo
  4. 数据存储之 SQLite 数据库操作(三)
  5. java控制语句案例_Java基础语法—流程控制语句
  6. java数组与C++数组的不同之处
  7. Android MVP框架实现过程
  8. MQTT 控制报文 - PINGREQ心跳报文,PINGRESP - 第4章
  9. mobi格式电子书_这几种电子书格式的关系与区别,资深Kindler有必要了解了解 !...
  10. 流放之路进传送门显示服务器断线,资讯:特别改动 优化组队经验获取 降低断图风险...
  11. postgis java_Postgresql结合postgis使用java的JDBC连接
  12. 在国产银河麒麟v10操作系统下安装亿图图示(VISIO替代品)
  13. 易语言计算机设备获取,易语言获取混音设备名称
  14. PHP丢失依赖文件libssl.so libcrypto.so
  15. python爬虫获取html_python3爬虫获取html内容及各属性值的方法
  16. 解决Word多级列表章标题第一章与节标题1.1排序混乱问题
  17. Effective C++条款11:在operator=中处理“自我赋值”(Handle assignment to self in operator=)
  18. 八月为什么有31天?
  19. Unite洛杉矶峰会精彩回顾:从图形、平台再到VR
  20. 软考分类精讲-知识产权与标准化

热门文章

  1. 四月读书日 国学传承正当时
  2. 数学抽象的魅力-奇妙的彭罗斯镶嵌(转载)
  3. linux如何创建ppt文件,桌面应用|如何在 Ubuntu 和其他 Linux 发行版中创建照片幻灯片...
  4. 从1亿个数里面找出前100个最大的
  5. JAVA生成的二维码以及给二维码添加背景图片
  6. 英巴卡迪诺中国发布官方视频专栏
  7. office 2010系列各版本下载地址
  8. 什么是 Hudi Timeline (时间线)
  9. 中通从通达系中跑出,极兔快递低价抢市,谁将落伍?
  10. Missing key(s) in state_dict | unexpected_keys | 模型加载 [torch.load] 报错【解决方案】