题目描述:

下图给出了一个迷宫的平面图,其中标记为1 的为障碍,标记为0 的为可
以通行的地方。
010000
000100
001001
110000
迷宫的入口为左上角,出口为右下角,在迷宫中,只能从一个位置走到这
个它的上、下、左、右四个方向之一。
对于上面的迷宫,从入口开始,可以按DRRURRDDDR 的顺序通过迷宫,
一共10 步。其中D、U、L、R 分别表示向下、向上、向左、向右走。
对于下面这个更复杂的迷宫(30 行50 列),请找出一种通过迷宫的方式,
其使用的步数最少,在步数最少的前提下,请找出字典序最小的一个作为答案。
请注意在字典序中D<L<R<U。

输入格式:

见文件:maze.txt

代码:

#include<bits/stdc++.h>
using namespace std;
const int MAX=55;
char graph[MAX][MAX];
bool vis[MAX][MAX];
int dir1[4]={1,0,0,-1};
int dir2[4]={0,-1,1,0};
char c[4]={'D','L','R','U'};
struct node{
int x,y;
string road;
node(int a,int b){
x=a;
y=b;
}
};
void bfs(int m1,int n1){
node p(m1,n1);
p.road="";
queue<node>q;
q.push(p);
vis[m1][n1]=true;
while(!q.empty()){
node t=q.front();
q.pop();
if(t.x==29&&t.y==49){
cout<<t.road<<endl;
break;
}
for(int i=0;i<4;i++){
int m=t.x+dir1[i];
int n=t.y+dir2[i];
if(m>=0&&m<30&&n>=0&&n<50){
if(!vis[m][n]&&graph[m][n]=='0'){
node d(m,n);
d.road=t.road+c[i];
q.push(d);
vis[m][n]=true;
}
}
}
}
}
int main(){
for(int i=0;i<30;i++){
for(int j=0;j<50;j++){
scanf("%c",&graph[i][j]);
}
getchar();
}
bfs(0,0);
return 0;
}

代码测试链接:P1455 - [蓝桥杯2019初赛]迷宫 - New Online Judge

2019年蓝桥杯C/C++大学B组省赛真题(迷宫)的更多相关文章

  1. 第十届蓝桥杯JavaB组省赛真题

    试题 A: 组队 本题总分:5 分 [问题描述] 作为篮球队教练,你需要从以下名单中选出 1 号位至 5 号位各一名球员, 组成球队的首发阵容. 每位球员担任 1 号位至 5 号位时的评分如下表所示. ...

  2. 2016 第七届蓝桥杯 c/c++ B组省赛真题及解题报告

    2016 第七届蓝桥杯 c/c++ B组省赛真题及解题报告 勘误1:第6题第4个 if最后一个条件粗心写错了,答案应为1580. 条件应为abs(a[3]-a[7])!=1,宝宝心理苦啊.!感谢zzh ...

  3. 第十届蓝桥杯JavaC组省赛真题

    试题 A: 求和 本题总分:5 分 [问题描述] 小明对数位中含有 2.0.1.9 的数字很感兴趣,在 1 到 40 中这样的数包 括 1.2.9.10 至 32.39 和 40,共 28 个,他们的 ...

  4. 第四届蓝桥杯JavaC组省赛真题

    解题代码部分来自网友,如果有不对的地方,欢迎各位大佬评论 题目1.猜年龄 题目描述 美国数学家维纳(N.Wiener)智力早熟,11岁就上了大学.他曾在1935~1936年应邀来中国清华大学讲学. 一 ...

  5. 第九届蓝桥杯JavaB组省赛真题

    解题代码部分来自网友,如果有不对的地方,欢迎各位大佬评论 题目1.第几天 题目描述 2000年的1月1日,是那一年的第1天. 那么,2000年的5月4日,是那一年的第几天? 注意:需要提交的是一个整数 ...

  6. 第九届蓝桥杯JavaA组省赛真题

    解题代码部分来自网友,如果有不对的地方,欢迎各位大佬评论 题目1.分数 题目描述 1/1 + 1/2 + 1/4 + 1/8 + 1/16 + - 每项是前一项的一半,如果一共有20项, 求这个和是多 ...

  7. 第八届蓝桥杯JavaB组省赛真题

    解题代码部分来自网友,如果有不对的地方,欢迎各位大佬评论 题目1.购物单 题目描述 小明刚刚找到工作,老板人很好,只是老板夫人很爱购物.老板忙的时候经常让小明帮忙到商场代为购物.小明很厌烦,但又不好推 ...

  8. 第九届蓝桥杯JavaC组省赛真题

    解题代码部分来自网友,如果有不对的地方,欢迎各位大佬评论 题目1.哪天返回 题目描述 小明被不明势力劫持.后被扔到x星站再无问津.小明得知每天都有飞船飞往地球,但需要108元的船票,而他却身无分文. ...

  9. Java实现第十一届蓝桥杯JavaB组 省赛真题

    试题 A: 指数计算 本题总分:5 分 [问题描述] 7 月 1 日是建党日,从 1921 年到 2020 年, 已经带领中国人民 走过了 99 年. 请计算:7 ^ 2020 mod 1921,其中 ...

  10. 第六届蓝桥杯JavaA组省赛真题

    解题代码部分来自网友,如果有不对的地方,欢迎各位大佬评论 题目1.熊怪吃核桃 题目描述 森林里有一只熊怪,很爱吃核桃.不过它有个习惯,每次都把找到的核桃分成相等的两份,吃掉一份,留一份.如果不能等分, ...

随机推荐

  1. Agora 教程丨一个典型案例,教你如何使用水晶球“数据洞察”

    7 月初,声网Agora 水晶球的"数据洞察"功能正式版上线."数据洞察"可显示两种数据,一种是用量,另一种是质量. "数据洞察"的&quo ...

  2. Java方法的定义

    前言 经过前面两篇关于面向对象.类和对象的文章,壹哥相信你现在对面向对象已经有了基本的了解.我们知道,在一个类中,包括属性和行为两大核心要素.我们之前已经给大家讲解了如何定义属性,但很多同学对方法还不 ...

  3. 你需要知道的 14 个常用的 JavaScript 函数

    1.确定任意对象的具体类型 众所周知,JavaScript 中有六种原始数据类型(Boolean.Number.String.Null.Undefined.Symbol)和一个对象数据类型.但是你知道 ...

  4. DSLinux介绍

    本发行版 名字叫 Damn Small Linux 整个磁盘大小是40多M, 相对于如今几十G起步的操作系统(对, 就是你Windows), 确实太tm小了 Kernel版本是2.4.26, 2004 ...

  5. C++ 浮点数比较代码

    #include <algorithm> #include <cmath> #include <iostream> // 如果 a 和 b 之间的差异在 a 和 b ...

  6. NotionAI - 文档领域的ChatGPT,一款 AI 加持的在线文档编辑和管理工具

    简介 NotionAI - 文档领域的ChatGPT,一款 AI 加持的在线文档编辑和管理工具 作为国际领先的在线文档编辑和管理工具,Notion受到了广大用户的欢迎,尤其是程序员们.它不仅支持笔记. ...

  7. window.onload / onscroll/onresize 事件

    onload当文档加载完成后执行一些操作 window.onload = function(){ console.log("页面加载完成") } onscroll当页面发生滚动时执 ...

  8. Java:如何在PowerPoint幻灯片中创建散点图

    散点图是通过两组数据构成多个坐标点,考察坐标点的分布,判断两变量之间是否存在某种关联或总结坐标点的分布模式.散点图将序列显示为一组点,值由点在图表中的位置表示,类别由图表中的不同标记表示,通常用于比较 ...

  9. 9.springSecurity整合OAuth2结合Jwt实现单点登录

    1.总结:昨天主要是继续完善OAuth2配合将问题完成单点登录,昨天也应证了一个认证服务,两个客户端服务在登陆一次后可以访问两个客户端的页面,也算是完成了单点登录   2.具体实现 首先是使用java ...

  10. 【Spring5】框架新功能

    Spring5框架新功能 整个Spring5框架的代码基于Java8,运行时兼容JDK9,许多不建议使用的类和方法在代码库中删除. Spring5自带了通用的日志封装:log4j2 已经移除了log4 ...