2019蓝桥杯省赛---java---A---4(迷宫)

题目描述

【问题描述】
下图给出了一个迷宫的平面图,其中标记为 1 的为障碍,标记为 0 的为可以通行的地方。
010000
000100
001001
110000
迷宫的入口为左上角,出口为右下角,在迷宫中,只能从一个位置走到这个它的上、下、左、右四个方向之一。
对于上面的迷宫,从入口开始,可以按DRRURRDDDR 的顺序通过迷宫,一共 10 步。其中 D、U、L、R 分别表示向下、向上、向左、向右走。
对于下面这个更复杂的迷宫(3050 列),请找出一种通过迷宫的方式,其使用的步数最少,在步数最少的前提下,请找出字典序最小的一个作为答案。请注意在字典序中D<L<R<U。(如果你把以下文字复制到文本文件中,请务必检查复制的内容是否与文档中的一致。再试题目录下有一个 maze.txt,内容与下面的文本相同)
01010101001011001001010110010110100100001000101010
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
【答案提交】
这是一道结果填空的题,你只需要算出结果后提交即可。本题的结果为一个字符串,包含四种字母 D、U、L、R,在提交答案时只填写这个字符串,填写多余的内容将无法得分。

思路分析

bfs

代码实现

package lanqiao;import java.util.*;
public class Main{static int counts=0;static String s="01010101001011001001010110010110100100001000101010"+ "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";static Set<String>set=new HashSet<>();public static void main(String[] args) {char   [][]map = new char   [30][50];boolean[][]vis = new boolean[30][50];for(int i=0;i<30;i++) {for(int j=0;j<50;j++) {map[i][j]=s.charAt(i*50+j);}}Position start=new Position(0,0,0,"");LinkedList<Position>queue=new LinkedList<>();queue.add(start);while(!queue.isEmpty()) {Position now = queue.poll();int i=now.i;int j=now.j;int step=now.step;String route=now.route;if(i==29&&j==49) {System.out.println(route);System.out.println(route.length());}//D  向下走if(i+1<30&&!vis[i+1][j]&&map[i+1][j]=='0') {queue.add(new Position(i+1,j,step+1,route+"D"));vis[i+1][j]=true;//标记为走过的路}//L  向左走if(j-1>=0&&!vis[i][j-1]&&map[i][j-1]=='0') {queue.add(new Position(i,j-1,step+1,route+"L"));vis[i][j-1]=true;//标记为走过的路}//R  向右走if(j+1<50&&!vis[i][j+1]&&map[i][j+1]=='0') {queue.add(new Position(i,j+1,step+1,route+"R"));vis[i][j+1]=true;//标记为走过的路}//U  向上走if(i-1>=0&&!vis[i-1][j]&&map[i-1][j]=='0') {queue.add(new Position(i-1,j,step+1,route+"U"));vis[i-1][j]=true;//标记为走过的路}}}
}
class Position{public int j;public int i;public int step;public String route;Position(int i,int j,int step,String route){this.i=i;this.j=j;this.step=step;this.route=route;}
}

答案

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/326033.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

面试官最爱问的并发问题

转载自 面试官最爱问的并发问题 在Java相关的岗位面试中&#xff0c;很多面试官都喜欢考察面试者对Java并发的了解程度&#xff0c;而以volatile关键字作为一个小的切入点&#xff0c;往往可以一问到底&#xff0c;把Java内存模型&#xff08;JMM&#xff09;&#xff0c;Jav…

西瓜显示服务器错误,西瓜云服务器

西瓜云服务器 内容精选换一换云服务器组是对云服务器的一种逻辑划分&#xff0c;云服务器组中的弹性云服务器遵从同一策略。当前仅支持反亲和性&#xff0c;即同一云服务器组中的弹性云服务器分散地创建在不同的主机上&#xff0c;提高业务的可靠性。您可以使用云服务器组将业务…

第四章使用jQuery操作DOM元素

一、DOM的分类&#xff1a; 1.DOM core 2.HTML-DOM 3.CSS-DOM 二、css操作 语法&#xff1a; $("#div1").css(“color”,“red”); $("#div1").css({“color”:“red”,“margin”:“5px”}); //添加样式 $("#div1").addClass(“div1_style”); …

30分钟掌握 C#6

1. 只读自动属性&#xff08;Read-only auto-properties&#xff09; C# 6之前我们构建只读自动属性&#xff1a; public string FirstName { get; private set; } public string LastName { get; private set; } 原理解析&#xff1a;就是编译器在生成set访问器时&#xff0c…

2019蓝桥杯省赛---java---A---6(完全二叉树的权值)

题目描述 思路分析 等差数列 代码实现 package lanqiao;import java.util.*; public class Main {public static void main(final String[] args) {Scanner sc new Scanner(System.in);int nsc.nextInt();int[]numsnew int[n1];long maxSum0;int minDeepInteger.MAX_VALUE;…

如何让面试官认可你的简历

转载自 如何让面试官认可你的简历 在之前的博客里写了很多面试技巧&#xff0c;这是有个前提&#xff1a; 至少候选人被面试了&#xff01; 在这个前提下&#xff0c;候选人哪怕失败了&#xff0c;至少也能用实战来检验和校对面试准备的结果&#xff0c;用句比较时髦的话来…

Linux中安装nc(netcat)常见问题

Linux中安装nc&#xff08;netcat&#xff09;常见问题 Spark Streaming编写wordCount程序时&#xff0c;在Linux集群中需要安装nc&#xff0c;来对程序中使用到的端口进行开放。在安装nc的时候&#xff0c;常出现的问题有以下几点!1、不建议使用 yum staill nc 进行安装&…

服务器c盘有个inetpub文件夹,老司机为你示范win10系统C盘inetpub文件夹删不掉的图文教程...

也许大家在用电脑工作的使用中会遇到win10系统C盘inetpub文件夹删不掉的情况&#xff0c;目前就有很多朋友向我资讯关于win10系统C盘inetpub文件夹删不掉的具体处理步骤。小编把总结的关于win10系统C盘inetpub文件夹删不掉的方法了教给大家&#xff0c;只用你按照  1、右键点…

体验VS2017的Live Unit Testing

相对于传统的Unit Test,VS2017 带来了一个新的功能,叫Live Unit Testing,从字面意思理解就是实时单元测试,在实际的使用中,这个功能就是可以在编写代码的时候进行实时的background的单元测试. 在体验之前,有几点注意事项是需要了解的: 1.目前 live unit tesing仅仅支持 C#和V…

sqlserver复习总结

--已知有一个表&#xff1a;该表的字段有&#xff1a;id,name,date,gradeid,email --1.插入一条记录&#xff1a; insert into table_name values (1,刘世豪,2017-10-21,1,666qq.com) --2.修改 update table_name set name 张云飞 where id 1 --3.删除 delete from table_name…

Map的两种遍历方法

COPY/*** HashMap的使用* 存储结构&#xff1a;哈希表&#xff08;数组链表红黑树&#xff09;*/public class Demo2 {public static void main(String[] args) {HashMap<Student, String> hashMapnew HashMap<Student, String>();Student s1new Student("tan…

服务器windows系统如何登陆,如何登陆windows云服务器

如何登陆windows云服务器 内容精选换一换远程登录的账号和密码是多少&#xff1f;登录云服务器的用户名和密码&#xff1a;Windows操作系统用户名&#xff1a;AdministratorLinux操作系统用户名&#xff1a;root登录云服务器的用户名和密码&#xff1a;Windows操作系统用户名&a…

Java集合面试问题

转载自 Java集合面试问题 Java集合框架为Java编程语言的基础&#xff0c;也是Java面试中很重要的一个知识点。在本文中&#xff0c;列出了一些关于Java集合的重要问题和答案。 1.Java集合框架是什么&#xff1f;说出一些集合框架的优点&#xff1f; 每种编程语言中都有集合…

深入.net平台的分层开发

一、搭建三层的步骤&#xff1a; 1.创建一个窗体应用程序&#xff1a;新建–》新建项目–》选择窗体应用程序–》给项目命名–》选择存放的路径。 2.创建数据访问层&#xff08;DLL层&#xff09;&#xff1a;文件–》添加–》新建项目–》选择类库–》起个名字&#xff08;项目…

2018蓝桥杯省赛---java---B---8(日志统计)

题目描述 小明维护着一个程序员论坛。现在他收集了一份"点赞"日志&#xff0c;日志共有N行。其中每一行的格式是&#xff1a; ts id 表示在ts时刻编号id的帖子收到一个"赞"。 现在小明想统计有哪些帖子曾经是"热帖"。如果一个帖子曾在任意一个长…

法兰克服务器电源维修,发那科FANUC系统控制电源简介

摘要发那科系统电源 推荐的外部24VDC电源(稳压电源)(电源电压必须满足UL1950的要求)。该电源不能与机床强电柜内I/O点或伺服电动机的抱闸共用。如果在控制单元的电源关掉后断开电池&#xff0c;则控制单元中存储的绝对脉冲编码器的当前位置&#xff0c;系统参数&#xff0c;程序…

这些代码优化的方法,你都用过吗

转载自 这些代码优化的方法&#xff0c;你都用过吗 代码优化的最重要的作用应该是&#xff1a; 避免未知的错误 在代码上线运行的过程中&#xff0c;往往会出现很多我们意想不到的错误&#xff0c;因为线上环境和开发环境是非常不同的&#xff0c;错误定位到最后往往是一个…

myeclipse如何换一个漂亮的主题

熟悉hbuilder的童鞋们都知道&#xff0c;在开发的时候主题有好几种可以随意切换&#xff0c;但是在开发java时用到的myeclipse的主题是否可以随意切换呢&#xff1f;如果可以在哪里切换&#xff0c;今天我们就来看看如何修改myeclipse的主题&#xff01; 一、首先我们要切换个漂…

基于C#.NET的高端智能化网络爬虫

前两天朋友发给我了一篇文章&#xff0c;是携程网反爬虫组的技术经理写的&#xff0c;大概讲的是如何用他的超高智商通过&#xff08;挑衅、怜悯、嘲讽、猥琐&#xff09;的方式来完美碾压爬虫开发者。今天我就先带大家开发一个最简单低端的爬虫&#xff0c;突破携程网超高智商…

2019蓝桥杯省赛---java---B---7(外卖店优先级)

题目描述 时间限制: 1.0s 内存限制: 512.0MB 本题总分&#xff1a;20 分 【问题描述】 “饱了么”外卖系统中维护着 N 家外卖店&#xff0c;编号 1 ∼ N。每家外卖店都有 一个优先级&#xff0c;初始时 (0 时刻) 优先级都为 0。 每经过 1 个时间单位&#xff0c;如果外卖店没有…