2019年蓝桥杯C/C++大学B组省赛真题(迷宫)
题目描述:
下图给出了一个迷宫的平面图,其中标记为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组省赛真题(迷宫)的更多相关文章
- 第十届蓝桥杯JavaB组省赛真题
		试题 A: 组队 本题总分:5 分 [问题描述] 作为篮球队教练,你需要从以下名单中选出 1 号位至 5 号位各一名球员, 组成球队的首发阵容. 每位球员担任 1 号位至 5 号位时的评分如下表所示. ... 
- 2016 第七届蓝桥杯 c/c++ B组省赛真题及解题报告
		2016 第七届蓝桥杯 c/c++ B组省赛真题及解题报告 勘误1:第6题第4个 if最后一个条件粗心写错了,答案应为1580. 条件应为abs(a[3]-a[7])!=1,宝宝心理苦啊.!感谢zzh ... 
- 第十届蓝桥杯JavaC组省赛真题
		试题 A: 求和 本题总分:5 分 [问题描述] 小明对数位中含有 2.0.1.9 的数字很感兴趣,在 1 到 40 中这样的数包 括 1.2.9.10 至 32.39 和 40,共 28 个,他们的 ... 
- 第四届蓝桥杯JavaC组省赛真题
		解题代码部分来自网友,如果有不对的地方,欢迎各位大佬评论 题目1.猜年龄 题目描述 美国数学家维纳(N.Wiener)智力早熟,11岁就上了大学.他曾在1935~1936年应邀来中国清华大学讲学. 一 ... 
- 第九届蓝桥杯JavaB组省赛真题
		解题代码部分来自网友,如果有不对的地方,欢迎各位大佬评论 题目1.第几天 题目描述 2000年的1月1日,是那一年的第1天. 那么,2000年的5月4日,是那一年的第几天? 注意:需要提交的是一个整数 ... 
- 第九届蓝桥杯JavaA组省赛真题
		解题代码部分来自网友,如果有不对的地方,欢迎各位大佬评论 题目1.分数 题目描述 1/1 + 1/2 + 1/4 + 1/8 + 1/16 + - 每项是前一项的一半,如果一共有20项, 求这个和是多 ... 
- 第八届蓝桥杯JavaB组省赛真题
		解题代码部分来自网友,如果有不对的地方,欢迎各位大佬评论 题目1.购物单 题目描述 小明刚刚找到工作,老板人很好,只是老板夫人很爱购物.老板忙的时候经常让小明帮忙到商场代为购物.小明很厌烦,但又不好推 ... 
- 第九届蓝桥杯JavaC组省赛真题
		解题代码部分来自网友,如果有不对的地方,欢迎各位大佬评论 题目1.哪天返回 题目描述 小明被不明势力劫持.后被扔到x星站再无问津.小明得知每天都有飞船飞往地球,但需要108元的船票,而他却身无分文. ... 
- Java实现第十一届蓝桥杯JavaB组 省赛真题
		试题 A: 指数计算 本题总分:5 分 [问题描述] 7 月 1 日是建党日,从 1921 年到 2020 年, 已经带领中国人民 走过了 99 年. 请计算:7 ^ 2020 mod 1921,其中 ... 
- 第六届蓝桥杯JavaA组省赛真题
		解题代码部分来自网友,如果有不对的地方,欢迎各位大佬评论 题目1.熊怪吃核桃 题目描述 森林里有一只熊怪,很爱吃核桃.不过它有个习惯,每次都把找到的核桃分成相等的两份,吃掉一份,留一份.如果不能等分, ... 
随机推荐
- Spring Boot笔记--Spring Boot相关介绍+快速入门
			相关介绍 简化了Spring开发,避免了Spring开发的繁琐过程 提供了自动配置.起步依赖.辅助功能 快速入门 结果呈现: 相关过程: helloController.java package or ... 
- Android笔记--常用布局
			线性布局--LinearLayout 线性布局的方向 orientation属性值:若为horizontal,内部视图在水平方向从左往右排列 若为vertical,内部视图在垂直方向从上往下排列 如果 ... 
- 【Jenkins】linux与windows环境下的安装步骤
			linux环境: <1>安装jdk: https://www.cnblogs.com/poloyy/p/12801792.htmljdk (参考) <2>环境清理 find / ... 
- MySQL 中 explain关键字
			更多内容,前往IT-BLOG explain关键字可以模拟优化器执行 SQL 查询语句,从而知道 MySQL 是如何处理 SQL 语句的.分析查询语句或表结构的性能瓶颈.执行语句:explain + ... 
- 获取JSON数据_获取二进制数据
			#百度jk图片 import requests # 请求头 header={"user-agent": "Mozilla/5.0 (Windows NT 10.0; WO ... 
- GKCTF X DASCTF应急挑战杯-Maple_root-Writeup
			GKCTF X DASCTF应急挑战杯-Maple_root-Writeup 参赛队员: b4tteRy, x0r, f1oat 最终成绩:2285 最终排名:27 总结 经过最近几次类线下的演练,感 ... 
- 二进制安装Kubernetes(k8s) v1.23.5
			Github:https://github.com/cby-chen/Kubernetes/releases 前提说明:公主号不支持富文本,建议在Github查看. 1.23.3 和 1.23.4 和 ... 
- pythonz之time库常用方法
			ime.time() 获取当前时间戳.time.ctime() 当前时间的字符串形式.time.localtime() 当前时间的 struct_time 形式.time.strftime() 用来获 ... 
- JQuery日期选择控件-兼容手机端
			在项目中经常使用到日期时间控件. 用的时候总是临时去找,现在记录下,以备下次使用. 官网http://www.bootcss.com/p/bootstrap-datetimepicker/ 需要引用一 ... 
- Django笔记二十二之多数据库操作
			本文首发于公众号:Hunter后端 原文链接:Django笔记二十二之多数据库操作 这一篇笔记介绍一下多数据库操作. 在第十篇笔记的时候,简单介绍过 using() 的使用方法,多个数据库就是通过 u ... 
