当前位置: 首页 > news >正文

临沂城乡建设管理局网站山东省住房和城乡建设网站

临沂城乡建设管理局网站,山东省住房和城乡建设网站,想采集某类型网站怎么做,网站响应时间多久题目 1.房间有XY的方格组成,例如下图为64的大小。每一个方格以坐标(x,y) 描述。 2.机器人固定从方格(0, 0)出发,只能向东或者向北前进,出口固定为房间的最东北角,如下图的 方格(5,3)。用例保证机器人可以从入口走到出口。 3.房间…

题目

1.房间有XY的方格组成,例如下图为64的大小。每一个方格以坐标(x,y) 描述。
2.机器人固定从方格(0, 0)出发,只能向东或者向北前进,出口固定为房间的最东北角,如下图的
方格(5,3)。用例保证机器人可以从入口走到出口。
3.房间有些方格是墙壁,如(4,1) ,机器人不能经过那儿。
4.有些地方是- -旦到达就无法走到出口的,如标记为B的方格,称之为陷阱方格。
5.有些地方是机器人无法达到的,如标记为A的方格,称之为不可达方格,不可达方格不包括墙壁
所在的位置
6.如下实例图中,陷阱方格有2个,不可达方格有3个。
7.请为该机器人实现路径规划功能:给定房间大小,墙壁位置,请计算出陷阱方格与不可达方格分别有多少个

在这里插入图片描述

输入
1.第一-行为房间的x和y(0 < x,y <= 1000 )
2.第二行为房间中墙壁的个数N (O <= N < x*Y)
3.接着下面会有N行墙壁的坐标

同一行中如果有多个数据以一个空格隔开,用例保证所有的输入数据均合法,(结尾不带回车换行

输出

1.陷阱方格与不可达方格数量,两个信息在一行中输出, 以一个空格隔开。(结尾不带回车换行)

在这里插入图片描述

Java代码

package day11;import javax.print.attribute.standard.Chromaticity;
import java.util.HashSet;
import java.util.Objects;
import java.util.Scanner;
import java.util.Set;public class MazeSolving {static int xLength;static int yLength;static class CheckModel{int x;int y;public CheckModel(int x,int y){this.x = x;this.y = y;}@Overridepublic int hashCode(){return Objects.hash(x, y);}@Overridepublic boolean equals(Object o){if(o==this){return true;}if(o==null||getClass()!=o.getClass()){return false;}CheckModel check = (CheckModel) o;return x == check.x && y==check.y;}}//wallSet代表墙壁坐标,checkSet用于存储在搜索路径过程中检查过的坐标,finishSet用于存储已经找到终点的坐标private static void findItOut(int x, int y, Set<CheckModel> wallSet, Set<CheckModel> checkSet, Set<CheckModel> finishSet) {if(yLength-1==y&&xLength-1==x){finishSet.add(new CheckModel(x,y));//检查当前坐标 (x, y) 是否是迷宫的终点}if(yLength<=y||x>=xLength){return;  //越界了}checkSet.add(new CheckModel(x,y));//否则添加到已检查坐标//北方向if(!wallSet.contains(new CheckModel(x,y+1))){findItOut(x,y+1,wallSet,checkSet,finishSet);}else{finishSet.add(new CheckModel(x,y));}//东方向if(!wallSet.contains(new CheckModel(x+1,y))){findItOut(x+1,y,wallSet,checkSet,finishSet);}else{finishSet.add(new CheckModel(x,y));}}public static void main(String[] args){try {Scanner sc = new Scanner(System.in);xLength = sc.nextInt();yLength = sc.nextInt();int size = sc.nextInt();int[][] values = new int[size][2];for(int i = 0; i < size; i++){values[i][0] = sc.nextInt();values[i][1] = sc.nextInt();}int trapCount = 0;int invalidCount = 0;Set<CheckModel> wallHashSet = new HashSet<>();for(int[] wall:values){wallHashSet.add(new CheckModel(wall[0],wall[1]));}Set<CheckModel> checksHashSet = new HashSet<>();Set<CheckModel> finshHashSet = new HashSet<>();findItOut(0,0,wallHashSet,checksHashSet,finshHashSet);invalidCount = xLength*yLength-checksHashSet.size()-wallHashSet.size();//整个迷宫中的格子数减去检查过的格子数和包含障碍物的格子数等于无法到达数量/** 这里使用 finishHashSet 中的每个坐标作为起点,再次调用 findItOut 进行深度优先搜索。* 如果搜索得到的路径中不包含终点 (xLength - 1, yLength - 1),则说明这条路径是无效的,* trapCount 就会增加。这样,trapCount 表示的是无效的路径的数量。** */for(CheckModel model:finshHashSet){Set<CheckModel> checksT = new HashSet<>();Set<CheckModel> finishT = new HashSet<>();findItOut(model.x, model.y, wallHashSet,checksT,finishT);if(!finishT.contains(new CheckModel(xLength-1,yLength-1))){trapCount++;}}System.out.println(trapCount+" "+invalidCount);}catch (Exception e){e.printStackTrace();System.out.println("input error");}}}
http://www.yayakq.cn/news/831661/

相关文章:

  • 资阳公司短视频优化服务seo快速排名点击
  • 乐清联科网站建设小团队兼职做网站
  • 有意义网站建e网全景
  • 山东省建设执业师之家官方网站网络公司经营范围
  • 做网站用的幻灯片大小santino wordpress
  • 吴江网站开发网站维护的要求包括
  • 律师网站模版深圳公司手机网站制作
  • 做视频网站的服务器网站快速收录方法
  • 企业网站源码wap自行创建网站的平台
  • 上海嘉定网站建设公司什么是电商?电商怎么做
  • vps搭建个人网站做网站需要招什么职位
  • 百度seo优化网站集客营销软件官方网站
  • 还是网站好网站建设模板犀牛云
  • 网站集约化建设流程外国网站在中国做推广
  • 数字城市建设网站品牌策划与推广方案
  • 邢台网站建设策划聊城专业网站建设公司电话
  • ss网站代码深圳 网站设
  • 网站做的好的公司php 5.6 wordpress
  • 免费做淘客cms网站海北公司网站建设价格低
  • 做网站学什么语言阿里云域名解析
  • 举例说明商业网站的建设流程做网站还有搞头吗
  • 网站基础模块建设开一个做网站的工作室
  • 网站建设 主机托管做彩票网站需要多少钱
  • 河南省城乡和建设厅网站首页全文wordpress主题
  • 网站相册代码请人制作一个app多少钱
  • 网站浮动窗口代码php网站友情链接出售
  • 网站服务器机房好看的单页面网站
  • 网站二次开发是什么淘宝网站建设不允许
  • 淘宝天猫优惠券网站怎么做雅思培训班
  • 专业网站制作服务网站栏目相关内容在哪采集啊