信息奥赛一本通《走迷宫》
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;
}
信息奥赛一本通《走迷宫》相关推荐
- 信息奥赛一本通的递推练习
信息奥赛一本通的递推练习 递推与动态规划 1313:位数问题 1314:过河卒 1194:移动路线 1196:踩方格 递推与动态规划 递推解决的问题中满足最优化原理的也是属于动态规划范畴 1313:位 ...
- 信息奥赛一本通 三角形最佳路径问题 (1288) 题解
信息奥赛一本通 三角形最佳路径问题 (1288) 题解 时间限制: 1000 ms 内存限制: 65536 KB 题目描述 如下所示的由正整数数字构成的三角形: 7 3 8 8 1 0 2 7 4 4 ...
- 【算法•日更•第十二期】信息奥赛一本通1585:【例 1】Amount of Degrees题解
废话不多说,直接上题: 1585: [例 1]Amount of Degrees 时间限制: 1000 ms 内存限制: 524288 KB 提交数: 130 通过数: 68 ...
- 信息奥赛一本通1215:迷宫
[题目描述] 一天Extense在森林里探险的时候不小心走入了一个迷宫,迷宫可以看成是由n * n的格点组成,每个格点只有2种状态,.和#,前者表示可以通行后者表示不能通行.同时当Extense处在某 ...
- 2038:最大数位置(题目来源于信息奥赛一本通官网)
2038:[例5.5]最大数位置 时间限制: 1000 ms 内存限制: 65536 KB 提交数: 4876 通过数: 3175 [题目描述] 输入n 个整数,存放在数组a[ ...
- HOJ 系统常用功能介绍 部署快速入门 c++ python java编程语言在线自动评测 信息奥赛一本通 USACO GESP 洛谷 蓝桥 CSP NOIP题库
技术支持微 makytony 服务器配置需求 腾讯云 2H4G 5M 60GB 轻量应用服务器 承载大约 200~400人使用,经过压力测试,评测并发速度可满足130人左右的在线比赛. 系统镜像选 ...
- 【算法•日更•第十四期】信息奥赛一本通1592:【例 1】国王题解
废话不多说,直接上题: 1592:[例 1]国王 时间限制: 500 ms 内存限制: 65536 KB 提交数: 290 通过数: 111 [题目描述] 原题来自:SGU 2 ...
- 信息奥赛一本通1232:Crossing River
[题目描述] 几个人过河,每次过两人一人回,速度由慢者决定,问过河所需最短时间. [输入] 输入t组数据,每组数据第1行输入n,第2行输入n个数,表示每个人过河的时间. [输出] 输出t行数据,每行1 ...
- 信息奥赛一本通1486: CH 6202 黑暗城堡 最短路径生成树计数
1486:黑暗城堡 [题目描述] 知道黑暗城堡有 N 个房间,M 条可以制造的双向通道,以及每条通道的长度. 城堡是树形的并且满足下面的条件: 设 Di为如果所有的通道都被修建,第 i 号房间与第 1 ...
最新文章
- linux message日志只有4k,命令长期运行 常用技巧 Linux 服务器 · 404k的前后端日志...
- [现代操作系统] 考前突击
- python:实现简单的web开发demo
- 数据存储之 SQLite 数据库操作(三)
- java控制语句案例_Java基础语法—流程控制语句
- java数组与C++数组的不同之处
- Android MVP框架实现过程
- MQTT 控制报文 - PINGREQ心跳报文,PINGRESP - 第4章
- mobi格式电子书_这几种电子书格式的关系与区别,资深Kindler有必要了解了解 !...
- 流放之路进传送门显示服务器断线,资讯:特别改动 优化组队经验获取 降低断图风险...
- postgis java_Postgresql结合postgis使用java的JDBC连接
- 在国产银河麒麟v10操作系统下安装亿图图示(VISIO替代品)
- 易语言计算机设备获取,易语言获取混音设备名称
- PHP丢失依赖文件libssl.so libcrypto.so
- python爬虫获取html_python3爬虫获取html内容及各属性值的方法
- 解决Word多级列表章标题第一章与节标题1.1排序混乱问题
- Effective C++条款11:在operator=中处理“自我赋值”(Handle assignment to self in operator=)
- 八月为什么有31天?
- Unite洛杉矶峰会精彩回顾:从图形、平台再到VR
- 软考分类精讲-知识产权与标准化
热门文章
- 四月读书日 国学传承正当时
- 数学抽象的魅力-奇妙的彭罗斯镶嵌(转载)
- linux如何创建ppt文件,桌面应用|如何在 Ubuntu 和其他 Linux 发行版中创建照片幻灯片...
- 从1亿个数里面找出前100个最大的
- JAVA生成的二维码以及给二维码添加背景图片
- 英巴卡迪诺中国发布官方视频专栏
- office 2010系列各版本下载地址
- 什么是 Hudi Timeline (时间线)
- 中通从通达系中跑出,极兔快递低价抢市,谁将落伍?
- Missing key(s) in state_dict | unexpected_keys | 模型加载 [torch.load] 报错【解决方案】