算法实验三 Problem B电子老鼠闯迷宫
Problem B
电子老鼠闯迷宫
时限:1000ms 内存限制:10000K 总时限:3000ms
描述:
有一只电子老鼠被困在如下图所示的迷宫中。这是一个12*12单元的正方形迷宫,黑色部分表示建筑物,白色部分是路。电子老鼠可以在路上向上、下、左、右行走,每一步走一个格子。现给定一个起点S和一个终点T,求出电子老鼠最少要几步从起点走到终点。
输入:
本题包含一个测例。在测例的第一行有四个由空格分隔的整数,分别表示起点的坐标S(x.y)和终点的坐标T(x,y)。从第二行开始的12行中,每行有12个字符,描述迷宫的情况,其中'X'表示建筑物,'.'表示路.
输出:
输出一个整数,即电子老鼠走出迷宫至少需要的步数。
输入样例:
2 9 11 8
XXXXXXXXXXXX
X......X.XXX
X.X.XX.....X
X.X.XX.XXX.X
X.X.....X..X
X.XXXXXXXXXX
X...X.X....X
X.XXX...XXXX
X.....X....X
XXX.XXXX.X.X
XXXXXXX..XXX
XXXXXXXXXXXX
输出样例:
2
#include <iostream>
#include <queue>
using namespace std;
//queue <rec> q;
char s[15][15];
int d[15][15];
int start_x, start_y, end_x, end_y;struct rec {int second;int first;
};
queue <rec> q;int dx[4] = {0, 0, 1, -1};int dy[4] = {1, -1, 0, 0};bool can(int x, int y) {if (x < 1 || y < 1 || y > 12 || x > 12) {return false;}if (s[x][y] == 'X') {return false;}return true;
}int main() {cin >> start_x >> start_y >> end_x >> end_y;for (int i = 1; i <= 12; i++) {for (int j = 1; j <= 12; j++) {cin >> s[i][j];}}memset(d, -1, sizeof(d));d[start_x][start_y] = 0;rec temp;temp.first = start_x;temp.second = start_y;q.push(temp);while (q.size()) {rec now = q.front();q.pop();for (int i = 0; i < 4; i++) {rec next;next.first = now.first + dx[i];next.second = now.second + dy[i];if (!can(next.first, next.second)) {continue;}if (d[next.first][next.second] == -1) {d[next.first][next.second] = d[now.first][now.second] + 1;q.push(next);}}}cout << d[end_x][end_y] << endl;return 0;
}
算法实验三 Problem B电子老鼠闯迷宫相关推荐
- 算法实验三 【电子老鼠闯迷宫】分支限界
算法实验三 [电子老鼠闯迷宫]分支限界 1042.电子老鼠闯迷宫 时限:1000ms 内存限制:10000K 总时限:3000ms 描述 有一只电子老鼠被困在如下图所示的迷宫中.这是一个12*12单元 ...
- NOJ1042——算法实验三——电子老鼠闯迷宫
电子老鼠闯迷宫 描述: 有一只电子老鼠被困在如下图所示的迷宫中.这是一个12*12单元的正方形迷宫,黑色部分表示建筑物,白色部分是路.电子老鼠可以在路上向上.下.左.右行走,每一步走一个格子.现给定一 ...
- 【NOJ1042】【算法实验三】电子老鼠闯迷宫
1042.电子老鼠闯迷宫 时限:1000ms 内存限制:10000K 总时限:3000ms 描述 有一只电子老鼠被困在如下图所示的迷宫中.这是一个12*12单元的正方形迷宫,黑色部分表示建筑物,白色部 ...
- 电子老鼠闯迷宫(BFS)
电子老鼠闯迷宫 Description 如下图12×12方格图,找出一条自入口(2,9)到出口(11,8)的最短路径. Input Output Sample Input 12 //迷宫大小 2 9 ...
- 1042电子老鼠闯迷宫 (广搜)
1042.电子老鼠闯迷宫 时限:1000ms 内存限制:10000K 总时限:3000ms 描述 有一只电子老鼠被困在如下图所示的迷宫中.这是一个12*12单元的正方形迷宫,黑色部分表示建筑物,白色 ...
- NOJ 1042 电子老鼠闯迷宫
2016.11.3 [题目描述] 1042.电子老鼠闯迷宫 时限:1000ms 内存限制:10000K 总时限:3000ms 描述 有一只电子老鼠被困在如下图所示的迷宫中.这是一个12*12单元的正方 ...
- (ssl1455)电子老鼠闯迷宫
电子老鼠闯迷宫 Time Limit:1000MS Memory Limit:65536K Total Submit:151 Accepted:107 Description 如下图12×12方格图 ...
- 1042 电子老鼠闯迷宫
电子老鼠闯迷宫 时限:1000ms 内存限制:10000K 总时限:3000ms 描述: 有一只电子老鼠被困在如下图所示的迷宫中.这是一个12*12单元的正方形迷宫,黑色部分表示建筑物,白色部分是路. ...
- NOJ电子老鼠闯迷宫
NOJ电子老鼠闯迷宫 描述: 有一只电子老鼠被困在如下图所示的迷宫中.这是一个12*12单元的正方形迷宫,黑色部分表示建筑物,白色部分是路.电子老鼠可以在路上向上.下.左.右行走,每一步走一个格子.现 ...
最新文章
- BZOJ——1202: [HNOI2005]狡猾的商人
- Ubuntu16.04系统下汉字显示为方框解决办法(图文详解)
- python哪里下载import包-【Python实战】模块和包导入详解(import)
- Vista下硬盘管理
- apk的签名文件(两次Hash+加密)
- C++彩色数据流动界面
- 导致集群重启_干货丨如何水平扩展和垂直扩展DolphinDB集群?
- 多线程讲座【by lilei005】
- 02205微型计算机原理与接口技术自考,2012年微型计算机原理与接口技术自考题模拟(2)...
- Common lisp编译成C的bin(二)
- Java Access Specifier (不同的访问修饰符)
- SQL Server 动态行转列(参数化表名、分组列、行转列字段、字段值)
- eos utility中文版v3.7.0
- python 视频解析接口_python接口自动化测试视频教程全集
- python运行内存不足_python svm内存不足怎么解决?
- 谁说大象不能跳舞读后感
- 微信用户提现功能 显示NO_AUTH | 产品权限验证失败,请查看您当前是否具有该产品的权限(企业付款到零钱 银行卡)
- tui-editor富文本编辑器组件
- linux秘钥对生成器,linux – GPG密钥生成器*不*使用熵
- [开源工具]2022/2023免费临时邮箱(Temp Free Mail)
热门文章
- eclipse java开发插件_10大Java开发必备的Eclipse插件
- 纸质合同和电子合同的区别
- 阻焊设计~焊盘阻焊开窗、阻焊桥
- 四节1.5V的5号电池、一个电容、一个12V的报警蜂鸣器、铜线和螺母,在螺母所栓的铜线触发接通电源后,缓慢放电10秒,制作一个简易震动报警器,需要用什么样的电容合适?...
- element admin跨域问题解决
- NW.js之入门篇(1)
- Java中的四种访问修饰符:public、default、protect和private
- jquery 列表hover效果 ,css :hover ,jquery 事件委托,jquery hover()方法
- Python动态演示旋转矩阵的作用
- Oracle中主键和唯一索引的区别oracle中联合主键的作用