1254:走出迷宫 2021-01-09

简介: 1254:走出迷宫 2021-01-09

1254:走出迷宫

时间限制: 1000 ms         内存限制: 65536 KB

【题目描述】

当你站在一个迷宫里的时候,往往会被错综复杂的道路弄得失去方向感,如果你能得到迷宫地图,事情就会变得非常简单。

假设你已经得到了一个n*m的迷宫的图纸,请你找出从起点到出口的最短路。

【输入】

第一行是两个整数n和m(1≤n,m≤100),表示迷宫的行数和列数。

接下来n行,每行一个长为m的字符串,表示整个迷宫的布局。字符‘.’表示空地,‘#’表示墙,‘S’表示起点,‘T’表示出口。

【输出】

输出从起点到出口最少需要走的步数。

【输入样例】

3 3

S#T

.#.

...

【输出样例】

6

1. #include <iostream>
2. #include <cstdio>
3. #include <cstring>
4. #include <algorithm>
5. using namespace std;
6. char t;
7. int n,m,x2,y2;
8. int map[102][102],p[10001][4];
9. int x3[4]={-1,1,0,0};
10. int y3[4]={0,0,-1,1};
11. void bfs(){
12.   int x,y,t=0,w=1;
13.   while(w>t){
14.     t++;
15.     for(int i=0;i<4;i++){
16.       x=p[t][1]+x3[i];
17.       y=p[t][2]+y3[i];
18.       if(x>0&&x<=n&&y>0&&y<=m&&map[x][y]==0){
19.         w++;p[w][1]=x;p[w][2]=y;
20.         p[w][3]=p[t][3]+1;map[x][y]=1;
21.         if(x==x2&&y==y2){
22.           printf("%d\n",p[w][3]);
23.           return ;
24.         }
25.       }
26.     }
27.   }
28. }
29. int main(int argc, char *argv[])
30. {
31.   scanf("%d %d",&n,&m);
32.   memset(map,0,sizeof(map));
33.   for(int i=1;i<=n;i++)
34.     for(int j=1;j<=m;j++){
35.       cin>>t;
36.       if(t=='S'){p[1][1]=i;p[1][2]=j;p[1][3]=0;map[i][j]=1;}
37.       else if(t=='T'){x2=i;y2=j;}
38.       else if(t=='#') map[i][j]=1;
39.     }
40.   bfs();
41.   return 0;
42. }

 

相关文章
|
存储 Ubuntu 关系型数据库
Ubuntu 20.04 卸载与安装 MySQL 5.7 详细教程
该文档提供了在Ubuntu上卸载和安装MySQL 5.7的步骤。首先,通过`apt`命令卸载所有MySQL相关软件包及配置。然后,下载特定版本(5.7.32)的MySQL安装包,解压并安装所需依赖。接着,按照特定顺序安装解压后的deb包,并在安装过程中设置root用户的密码。安装完成后,启动MySQL服务,连接数据库并验证。最后,提到了开启GTID和二进制日志的配置方法。
4529 5
|
存储 关系型数据库 数据库
请解释一下云数据库的备份和恢复策略。
请解释一下云数据库的备份和恢复策略。
273 0
|
机器学习/深度学习 存储 数据可视化
机器学习算法(一): 基于逻辑回归的分类预测-Task01
Logistic Regression 虽然被称为回归,但其实际上是分类模型,并常用于二分类。Logistic Regression 因其简单、可并行化、可解释强深受工业界喜爱。
670 0
机器学习算法(一): 基于逻辑回归的分类预测-Task01
|
Dubbo 前端开发 数据可视化
我为什么选择多边形架构做为工程的基础思想
这里以开源项目alinesno-cloud微服务架构的建设拆分再到整合成产品型结构的进行阐述,从原来的几十个工程基线(近百个服务模块),再到后来的20个左右产品模块的组合,进行服务能力的输出。过程工程由微服务、六边型、再到多边型工程结构的实践经验,这里偏向于工程结构以适应平台产品化发展的变更。
|
Rust C++ Windows
【RUST学习日记】第13课 字符串(上)
【RUST学习日记】第13课 字符串(上)
【RUST学习日记】第13课 字符串(上)
|
存储 缓存 算法
【数据结构初阶】复杂链表复制+带头双向循环链表+缓存级知识
【数据结构初阶】复杂链表复制+带头双向循环链表+缓存级知识
|
Java Maven API
从java进程里dump出类的class文件的小工具--dumpclass
Serviceability Agent 想要查看一些被增强过的类的字节码,或者一些AOP框架的生成类,就需要dump出运行时的java进程里的字节码。
1878 0
|
JavaScript 前端开发 应用服务中间件
为OpenResty增加ngx_pagespeed模块进行优化
1、下载ngx_pagespeed模块 wget https://github.com/pagespeed/ngx_pagespeed/archive/v1.8.31.4-beta.zip unzip v1.
1378 0
|
5天前
|
云安全 人工智能 自然语言处理