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

网站建设 安庆建设摩托车125价格

网站建设 安庆,建设摩托车125价格,网站兼容性是什么意思,网站备案 2016机器人走迷宫 题目 房间有X*Y的方格组成,例如下图为6*4的大小。每一个放个以坐标(x,y)描述。 机器人固定从方格(0,0)出发,只能向东或者向北前进, 出口固定为房间的最东北角,如下图的方格(5,3)。 用例保证机器人可以从入口走到出…

机器人走迷宫

题目

  1. 房间有X*Y的方格组成,例如下图为6*4的大小。每一个放个以坐标(x,y)描述。

  2. 机器人固定从方格(0,0)出发,只能向东或者向北前进,
    出口固定为房间的最东北角,如下图的方格(5,3)
    用例保证机器人可以从入口走到出口。

  3. 房间有些方格是墙壁,如(4,1),机器人不能经过那儿。

  4. 有些地方是一旦到达就无法走到出口的,如标记为B的方格,称之为陷阱方格。

  5. 有些地方是机器人无法达到的,如标记为A的方格,称之为不可达方格,不可达方格不包括墙壁所在的位置

  6. 如下实例图中,陷阱方格有2个,不可达方格有3个。

  7. 请为该机器人实现路径规划功能:给定房间大小,墙壁位置,请计算出陷阱方格与不可达方格分别有多少个

    0121.png

输入

  1. 第一行为房间的xy(0 < x,y <= 1000)
  2. 第二行为房间中墙壁的个数N (0 <= N < X*Y)
  3. 接着下面会有N行墙壁的坐标
    同一行中如果有多个数据以一个空格隔开,用例保证所有的输入数据均合法,(结尾不带回车换行)

输出

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

示例一

输入

6 4
5
0 2
1 2
2 2
4 1
5 1

输出

2 3

示例二

输入

6 4
4
2 0
2 1
3 0
3 1

输出

0 4

说明

说明不可达方格有4(4,0) (4,1) (5,0) (5,1)

01212.png

解题思路

核心算法是深度优先搜索,解决了一道题目,判断一个地图中是否有陷阱。代码中有一些细节,需要注意。

读取输入

在JavaScript中,我们可以使用readline模块。为了避免一次性读取所有输入,我们可以通过监听stdin的line事件,每读取一行执行一次。

定义Check类

由于JavaScript中没有类的概念,我们可以使用一个对象字面量来代替这个类。我们需要实现equals和hashCode方法,以便在Set中使用。equals方法检查两个对象是否相等,hashCode方法为对象计算

Code

const readline = require("readline");class Check {constructor(x, y) {this.x = x;this.y = y;}equals(other) {return this.x === other.x && this.y === other.y;}hashCode() {return this.x * 31 + this.y;}
}let xLen;
let yLen;function main() {const rl = readline.createInterface({input: process.stdin,output: process.stdout,});rl.on("line", (line) => {const input = line.trim().split(" ").map(Number);if (xLen === undefined) {xLen = input[0];yLen = input[1];const n = input[2];const walls = [];for (let i = 0; i < n; i++) {walls.push([parseInt(rl.read()), parseInt(rl.read())]);}solveMethod(walls);}});
}function solveMethod(walls) {let trapCount = 0;let invalidCount = 0;const wallSet = new Set();for (const wall of walls) {wallSet.add(new Check(wall[0], wall[1]));}const checks = new Set();const finish = new Set();findOut(0, 0, wallSet, checks, finish);invalidCount = xLen * yLen - checks.size - wallSet.size;for (const check of finish) {const checksT = new Set();const finishT = new Set();findOut(check.x, check.y, wallSet, checksT, finishT);if (!finishT.has(new Check(xLen - 1, yLen - 1))) {trapCount++;}}console.log(trapCount + " " + invalidCount);
}function findOut(x, y, wallSet, checks, finish) {if (x === xLen - 1 && y === yLen - 1) {finish.add(new Check(x, y));}if (x >= xLen || y >= yLen) {return;}checks.add(new Check(x, y));if (!wallSet.has(new Check(x, y + 1))) {findOut(x, y + 1, wallSet, checks, finish);} else {finish.add(new Check(x, y));}if (!wallSet.has(new Check(x + 1, y))) {findOut(x + 1, y, wallSet, checks, finish);} else {finish.add(new Check(x, y));}
}

版权说明

试题来源:华为 OD 联盟整理收集

题解:解题思路代码 为原创内容,该部分版权由 OD 联盟共同拥有,并授权组内成员发布。

目标:👉 助你解开所有机试题

http://www.yayakq.cn/news/881789/

相关文章:

  • 青岛网站建设方案外包模板之家如何免费下载
  • 洪涛怎么样海城市建设网站网络营销推广的方法有哪些
  • php招聘网站开发流程网站书店建设背景
  • 大兴做网站公司视频解析接口网站怎么做
  • wordpress添加新功能淘宝关键词优化技巧教程
  • 做网站框架图哪个在线网站好用网站不被收录怎么办
  • 公司的网站费怎样做会计分录咸阳网站制作公司
  • 贵州省城乡和建设厅网站首页抖音seo什么意思
  • excel做注册网站百度网站优化推广
  • 如何建设网站吸引人中国建设银行信用卡网站
  • 学校网站建设规划丹东建设安全监督网站
  • wordpress 网站暂停白杨seo教程
  • 大型行业门户网站开发建设方案wordpress 搭建多站点
  • 丹阳网站建设咨询内蒙古建设厅建筑网站
  • 黑龙江网络公司网站建设wordpress 国内知名
  • 凌云县城乡建设局网站海口网站建设哪家最好
  • 网站谷歌优化怎么做营销网络广告
  • 成都市微信网站建设公司seo培训机构排名
  • 给客户做非法网站建设网站需要租用服务器
  • 门户网站建设培训简报新乡市建设局网站
  • 养车网站开发如何找做网站的客户
  • 商务网站主页设计公司wordpress关闭评论窗口
  • 个人网站需要多大空间wordpress auto
  • logo灵感网站怎么做关键词优化排名
  • app如何推广以及推广渠道莱芜网站优化方案
  • 怎么把自己做的网站登录到网上网站优化要素
  • 龙岗网站建设深圳信科广西建设工程协会网站查询
  • 网站建设公司不让放自己空间站网络营销策划方案展示
  • 建设一个班级网站的具体步骤网站制作公司排行榜
  • 购物网站二级店铺mvc高端品牌衣服有哪些牌子