迷宫问题 随机 c语言,迷宫问题 C语言
下图给出了一个迷宫的平面图,其中标记为 1 的为障碍,标记为 0 的为可以通行的地方。
010000
000100
001001
110000
迷宫的入口为左上角,出口为右下角,在迷宫中,只能从一个位置走到这个它的上、下、左、右四个方向之一。
对于上面的迷宫,从入口开始,可以按DRRURRDDDR 的顺序通过迷宫,
一共 10 步。其中 D、U、L、R 分别表示向下、向上、向左、向右走。
对于下面这个更复杂的迷宫(30 行 50 列),请找出一种通过迷宫的方式,
其使用的步数最少,在步数最少的前提下,请找出字典序最小的一个作为答案。
请注意在字典序中D01010101001011001001010110010110100100001000101010
00001000100000101010010000100000001001100110100101
01111011010010001000001101001011100011000000010000
01000000001010100011010000101000001010101011001011
00011111000000101000010010100010100000101100000000
11001000110101000010101100011010011010101011110111
00011011010101001001001010000001000101001110000000
10100000101000100110101010111110011000010000111010
00111000001010100001100010000001000101001100001001
11000110100001110010001001010101010101010001101000
00010000100100000101001010101110100010101010000101
11100100101001001000010000010101010100100100010100
00000010000000101011001111010001100000101010100011
10101010011100001000011000010110011110110100001000
10101010100001101010100101000010100000111011101001
10000000101100010000101100101101001011100000000100
10101001000000010100100001000100000100011110101001
00101001010101101001010100011010101101110000110101
11001010000100001100000010100101000001000111000010
00001000110000110101101000000100101001001000011101
10100101000101000000001110110010110101101010100001
00101000010000110101010000100010001001000100010101
10100001000110010001000010101001010101011111010010
00000100101000000110010100101001000001000000000010
11010000001001110111001001000011101001011011101000
00000110100010001000100000001000011101000000110011
10101000101000100010001111100010101001010000001000
10000010100101001010110000000100101010001011101000
00111100001000010000000110111000000001000000001011
10000001100111010111010001000110111010101101111000
代码实现
#include
using namespace std;
const int maxn = 1e2 + 10;
typedef long long ll;
#define fi first
#define se second
#define pii pair
char mp[maxn][maxn];
int vis[maxn][maxn];
pairpre[maxn][maxn];
/// D < L < R < U
string ss = “DLRU”;
int Move[4][2] = {1,0, 0,-1, 0,1, -1,0};
int n = 30, m = 50;
void bfs() {
queue q;
q.push(pii(0,0));
vis[0][0] = 1;
pre[0][0] = make_pair(pii(-1,-1), ’ ');
while (!q.empty()) {
pii u = q.front(); q.pop();
int x = u.fi, y = u.se;
for (int i = 0; i < 4; i++) {
int tox = x + Move[i][0];
int toy = y + Move[i][1];
if (tox < 0 || tox >= n || toy < 0
|| toy >= m || vis[tox][toy] ||
mp[tox][toy] == ‘1’) {
continue;
}
vis[tox][toy] = 1;
pre[tox][toy] = make_pair(u, ss[i]);
q.push(pii(tox, toy));
}
}
}
void print(int x, int y) {
if (x == -1 && y == -1) {
return ;
}
print(pre[x][y].fi.fi, pre[x][y].fi.se);
cout << pre[x][y].se;
}
int main() {
freopen(“in.txt”, “r”, stdin);
freopen(“out.txt”, “w”, stdout);
for (int i = 0; i < n; i++) {
scanf("%s", mp[i]);
}
bfs();
print(29,49);
return 0;
}
在同级文件夹添加输入输出文本文档
in.txt
out.txt
迷宫问题 随机 c语言,迷宫问题 C语言相关推荐
- 迷宫游戏c语言源程序,C语言迷宫游戏设计(源代码+论文)
C语言迷宫游戏设计(源代码+论文) 如有需要请联系 QQ:958035640 摘 要 随着科技的日益发展,计算机信息知识越来越被人们所认知和使用,在当今知识爆炸的时代计算机毫不疑问成为人们常用的日常工 ...
- c语言迷宫问题课程报告,基于c语言的迷宫问题课程设计
基于c语言的迷宫问题课程设计 *******************实践教学*******************兰州理工大学软件学院2012 年春季学期算法与数据结构 课程设计题 目: 迷宫问题 专 ...
- c语言 迷宫深度遍历 算法,图的遍历迷宫生成算法浅析
1. 引言 在平常的游戏中,我们常常会碰到随机生成的地图.这里我们就来看看一个简单的随机迷宫是如何生成. 2. 迷宫描述随机生成一个m * n的迷宫,可用一个矩阵maze[m][n]来表示,如图: ...
- 迷宫_随机实验_边做边学深度强化学习:PyTorch程序设计实践(1)
迷宫_随机实验_边做边学深度强化学习:PyTorch程序设计实践 0.相关文章 1.导入所使用的包 2. 定义迷宫 3.定义迷宫动作 4.策略参数θ转换为行动策略π 5.定义随机移动函数 6.定义使智 ...
- Rot.js 随机地牢,迷宫地图生成
js 插件随机地牢,迷宫地图生成 插件git https://github.com/ondras/rot.js/tree/master/dist 使用: 1.我们的游戏是在网页内进行的;一个基本的 H ...
- C语言 迷宫问题求解(顺序栈应用示例)
[cpp] view plaincopy //顺序栈的应用:迷宫 //作者:nuaazdh //时间:2011年12月7日 #include <stdio.h> #include < ...
- c 实现走迷宫流程图_c语言迷宫问题程序功能介绍.设计思路.数据结构设计及用法说明程序结构(流程图).各模块的功能及程序说明....
满意答案 qiniy808451 2014.01.06 采纳率:40% 等级:13 已帮助:8084人 原来也做过,以下是写的源代码,里面有部分注释,应该能看懂,可以运行.总结的话,把代码写进去 ...
- java课程设计总结迷宫_Java课程设计走迷宫详解.doc
Java语言与面向对象技术 课程设计报告 ( 2014 -- 2015年度第 1 学期) 走迷宫 目 录 目 录2 1 概 述1 1.1 课程设计目的1 1.2 课程设计内容1 2 系统需求分析2 2 ...
- fla 走迷宫游戏 源码_迷宫新玩法,果断一试
迷宫, 真的是谜一样的存在, 大到几十岁的成年人, 小到三岁小儿, 都对其没有抵抗力. 而迷宫君也是真给力, 除了能给人带来愉悦感与成就感, 还能同时锻炼专注力.空间感.思维力.视觉追踪等, 是儿童感 ...
- java课程设计总结迷宫_java课设走迷宫(含代码)#优质参考
java课设走迷宫(含代码)#优质参考 目录1设计目的1.1课程设计的目的2总体设计2.1设计思路2.2设计方法3关键技术4程序流程5主要源代码6. 运行结果及结论7.参考文献1.设计目的1.1课程设 ...
最新文章
- dataTables常用参数
- 大数据能力提升项目| 学生成果展系列之二
- 【JavaScript】核心语法之数组
- robolectric android studio,Android Studio + Robolectric + AndroidAnnotations 根本框架
- c#数组赋初值_【自学C#】|| 笔记 13 数组
- B00007 快速模幂运算的两个C语言程序
- 基于QT的UDP测试工具
- Nature、Science、Cell、Plos系列顶级学术杂志解析
- Luogu1527[国家集训队]矩阵乘法
- 使用Labwindows开发DAQmx
- 计算机个人市场调查实验报告,市场调查实验报告(一)
- zk实现主从选举-java
- AriaNg 是一个让 aria2 更容易使用的现代 Web 前端
- Excel中提取单元格(括号)内的信息
- “小智特惠” Android版已经登录各大电子市场,欢迎试用
- 推荐一款专业制作手机铃声的音乐剪辑器?
- Tools/Profiler
- 在线制作动态显示折线图
- android 内部 存储空间不足,安卓手机内存空间不足的解决方法
- 交换机和路由器有什么区别?