华为OD机试 - 跳马 - 广度优先搜索BFS(Python/JS/C/C++ 2024 E卷 200分)

一、题目描述

马是象棋(包括中国象棋只和国际象棋)中的棋子,走法是每步直一格再斜一格,即先横着或直着走一格,然后再斜着走一个对角线,可进可退,可越过河界,俗称马走 “日“ 字。

给项m行n列的棋盘(网格图),棋盘上只有象棋中的棋子“马”,并目每个棋子有等级之分,等级为K的马可以跳1~k步(走的方式与象棋中“马”的规则一样,不可以超出棋盘位置),问是否能将所有马跳到同一位置,如果存在,输出最少需要的总步数(每匹马的步数相加) ,不存在则输出-1。

注意:

允许不同的马在跳的过程中跳到同一位置,坐标为(x,y)的马跳一次可以跳到到坐标为(x+1,y+2),(x+1,y-2),(x+2,y+1),(x+2,y-1). (x-1,y+2),(x-1,y-2),(x-2,y+1),(x-2,y-1),的格点上,但是不可以超出棋盘范围。

二、输入描述

第一行输入m,n代表m行n列的网格图棋盘(1 <= m,n <= 25);

接下来输入m行n列的网格图棋盘,如果第i行,第j列的元素为 “.” 代表此格点没有棋子,如果为数字k (1<= k <=9),代表此格点存在等级为的“马”。

三、输出描述

输出最少需要的总步数 (每匹马的步数相加),不存在则输出-1。

四、测试用例

测试用例1

1、输入

3 2
…
2.
…</

华为OD机试D卷C卷 - 跳马(C++ Java JavaScript Python C语言) 输入 m 和 n 两个数,m 和 n 表示一个 m*n 的棋盘。输入棋盘内的数据。棋盘中存在数字和"."两种字符,如果是数字表示该位置是一匹马,如果是"."表示该位置为空的,棋盘内的数字表示为该马能走的最大步数。 阅读详情

相关推荐

【跳马】最少需要的总步数

(Java & JS & Python & C & C++),实现:广度优先搜索

优快云 9013

【华为OD机试真题 Python语言】431、跳马问题 | 机试真题+思路参考+代码解析(最新C卷抽中)(E卷复用)(本题100%)

题目描述 >输入 m 和 n 两个数,m 和 n 表示一个 m*n 的棋盘。输入棋盘内的数据。棋盘中存在数字和"."两种字符,如果是数字表示该位置是一匹马,如果是"."表示该位置为空的,棋盘内的数字表示为该马能走的最大步数。   例如棋盘内某个位置一个数字为 k,表示该马只能移动 1~k 步的距离。   棋盘内的马移动类似于中国象棋中的马移动,先在水平或者垂直方向上移动一格,然后再将其移动到对角线位置。   棋盘内的马可以移动到同一个位置,同一个位置可以有多匹马。  

KJ.JK 3002

基于 Transformer 架构的大模型智能体高效训练策略研究

本文提出了一套针对Transformer架构大模型智能体的高效训练策略,从内存、样本和计算三个维度优化训练效率。在内存方面,采用梯度检查点+混合精度、LoRA自适应和序列并行技术,将Llama-2-7B模型在1M上下文长度下的显存占用降至72GB。样本效率方面,通过拒绝采样、课程标签平滑和离线-在线混合训练,使WebShop任务的训练步数减少2.1倍。计算效率方面,结合梯度累积、1-bit Adam和FP8训练,将单次实验成本从1000美元压缩至200美元。文章提供了完整的PyTorch代码实现,包括LoR

博客 1092

华为OD机试 新系统 双机位C卷 往年真题 机考题库(持续收录中)以及算法考点详解(Python/JS/C/C++)

刷的越多,抽中的概率越大,每一题都有详细的答题思路、详细的代码注释发现新题目,随时更新。

学Java,找哪吒 5万+

华为OD机试 新系统 双机位C卷 往年真题 机考题库(持续收录中)以及算法考点详解

每一题都有详细的答题思路、详细的代码注释、样例测试,发现新题目,随时更新,全天优快云在线答疑。

学Java,找哪吒 7万+

【2024年华为OD机试】(E卷,200分)-跳马 (JavaScript&Java & Python&C/C++)

华为OD(Outsourcing Developer,外包开发工程师)是华为针对软件开发工程师岗位的一种招聘形式,主要包括笔试、技术面试以及综合面试等环节。尤其在笔试部分,算法题的机试至关重要。

嵌入式技术开发 965

【2024年华为OD机试】(C卷,200分)- 跳马 (JavaScript&Java & Python&C/C++)

华为OD(Outsourcing Developer,外包开发工程师)是华为针对软件开发工程师岗位的一种招聘形式,主要包括笔试、技术面试以及综合面试等环节。尤其在笔试部分,算法题的机试至关重要。

嵌入式技术开发 778

【2023华为OD-C卷-第三题-跳马】100%通过率(JavaScript&Java&Python&C++)

首先我们考虑,如果只有一个马,那肯定是不需要移动的,因此对应的最小步数为0,如果是两个马,我们可以对这两个马分别跑一遍BFS,求这两个马到棋盘上每个点的最小距离(有的点受限于。步(走的方式与象棋中“马”的规则一样,不可以超出棋盘位置),问是否能将所有马跳到同一位置,如果存在,输出最少需要的总步数(每匹马的步数相加),不存在则输出。马是象棋(包括中国象棋和国际象棋)中的棋子,走法是每步直一格再斜一格,即先横着或直着走一格,然后再斜着走一个对角线,可进可退,可越过河界,俗称马走“日”字。只有一匹马,不需要跳。

m0_73659489的博客 1934

华为OD机试 - 跳马 - 广度优先搜索BFS(Java 2024 E卷 200分)

广度优先搜索(BFS)是一种图搜索算法,它从起始节点开始,逐层扩展访问每一层的所有节点,直至找到目标节点或遍历完整个图。

学Java,找哪吒 1475

2026年华为od机试真题题库

OD统一考试(E卷)OD统一考试(E卷)OD统一考试(E卷)OD统一考试(E卷)OD统一考试(E卷)OD统一考试(E卷)OD统一考试(E卷)OD统一考试(E卷)OD统一考试(E卷)OD统一考试(E卷)OD统一考试(E卷)OD统一考试(E卷)OD统一考试(E卷)OD统一考试(E卷)OD统一考试(E卷)OD统一考试(E卷)OD统一考试(E卷)OD统一考试(E卷)OD统一考试(E卷)OD统一考试(E卷)

面试高手的博客 19万+

【独家OD2023C卷真题】20天拿下华为OD笔试【BFS】2023C-跳马问题【欧弟算法】全网注释最详细分类最全的华为OD真题题解

假设已知某匹马的坐标和最大跳跃步数,则可以用BFS计算出能够跳到该匹马能够用到达地图上某个点的最小步数。棋盘内的马移动类似于中国象棋中的马移动,先在水平或者垂直方向上移动一格,然后再将其移动到对角线位置。请问能否将棋盘上所有的马移动到同一个位置,若可以请输入移动的最小步数。能否将棋盘上所有的马移动到同一个位置,若可以请输入移动的最小步数。表示该位置为空的,棋盘内的数字表示为该马能走的最大步数。棋盘内的马可以移动到同一个位置,同一个位置可以有多匹马。可以看出,所有马跳到同一个位置的最小的步数就为。

weixin_48157259的博客 1562

2023华为od机试C卷【跳马问题】C++ 实现

我们先假定只有一匹马,那么我们用简单的BFS/DFS就可以求出这匹马到棋盘上每个位置所需要的步数。输入 m 和 n 两个数,m 和 n 表示一个 m*n 的棋盘。棋盘中存在数字和"."两种字符,如果是数字表示该位置是一匹马,如果是"."表示该位置为空的,棋盘内的马移动类似于中国象棋中的马移动,先在水平或者垂直方向上移动一格,然后再将其移动到对角线位置。能否将棋盘上所有的马移动到同一个位置,若可以请输入移动的最小步数。棋盘内的马可以移动到同一个位置,同一个位置可以有多匹马。,若可以请输入移动的最小步数。

MISAYAONE的博客 1415

华为OD机试 - 跳马(Java & JS & Python & C & C++)

## 题目描述 马是象棋(包括中国象棋和国际象棋)中的棋子,走法是每步直一格再斜一格,即先横着或者直者走一格,然后再斜着走一个对角线,可进可退,可越过河界,俗称"马走日"字。 给定 m 行 n 列的棋盘(网格图),棋盘上只有棋子象棋中的棋子“马”,并且每个棋子有等级之分,等级为 k 的马可以跳 1~k 步(走的方式与象棋中“马”的规则一样,不可以超出棋盘位置),问是否能将所有马跳到同一位置,如果存在,输出最少需要的总步数(每匹马的步数相加),不存在则输出-1。 注:允许不同的马在跳的过程中跳到同一位置,

m0_66793065的博客 5231

华为OD- 跳马-2024年OD(E卷)

注:允许不同的马在跳的过程中跳到同一位置,坐标为(x,y)的马跳一次可以跳到的坐标为:(x+1, y+2),(x+1, y-2),(x+2, y+1),(x+2, y-1),(x-1, y+2),(x-1, y-2),(x-2, y+1),(x-2, y-1),的格点上,但是不可以超出棋盘范围。接下来输入 m 行 n 列的网格图棋盘,如果第 i 行,第 j 列的元素为 "." ,代表此格点没有棋子,如果为数字 k(1 ≤ k ≤ 9),代表此格点存在等级为 k 的“马”

蜗牛快快快快跑的博客 1061

华为od机试C卷【跳马问题】

输入 m 和 n 两个数,m 和 n 表示一个 m*n 的棋盘。棋盘中存在数字和"."两种字符,如果是 数字表示 该位置是一匹马,如果是数字表示该位置为空的,棋盘内的数字表示为该马能走的最大步数。棋盘内的马移动类似于 中国象棋 中的马移动,先在水平或者垂直方向上移动一格,然后再将其移动到对角线位置。请问能否将棋盘上所有的马移动到同一个位置,若可以请输入移动的最小步数。能否将棋盘上所有的马移动到同一个位置,若可以请输入移动的最小步数。输入m 和 n 两个数,m 和 n 表示一个 m*n 的棋盘。

sgh1027的专栏 278

【华为OD机试真题2023C&D卷 JAVA&JS】跳马

跳马 马是象棋(包括中国象棋和国际象棋)中的棋子,走法是每步直一格再斜一格,即先横着或直着走一格,然后再斜着走一个对角线,可进可退,可越过河界,俗称“马走‘日’字。 给顶m行n列的棋盘(网格图),棋盘上只有有棋子象棋中的棋子“马”,并且每个棋子有等级之分,等级为k的马可以跳1~k步(走的方式与象棋中“马”的规则一样,不可以超出棋盘位置),问是否能将所有马跳到同一位置,如果存在,输出最少需要的总步数(每匹马的步数相加),不存在则输出-1。注:允许不同的马在跳的过程中跳到同一位置,坐标为(x,

qq_34465338的博客 994

基于51单片机的贪吃蛇游戏设计

本科时候做的一个课程作业,自己打一个很简易的电路,比较有意思且易上手,故将之记录下来。(全套的仿真及代码,演示视频,课程报告以及PPT展示上传在优快云下载区) 一. 实验目的 (1) 通过对C51语言的理解,编写程序实现对贪吃蛇的有效控制; (2) 通过对51单片机硬件的学习,学会运用面包板,独立按键、点阵屏等,完成对完整电路的搭建过程; (3) 通过对Proteus仿真软件的学习,实现基于STC89C52单片机的8*8点阵贪吃蛇的硬件电路仿真。 二. 实验介绍 贪吃蛇是一款经典小游戏,其游戏的规则是:玩

山山の十三先生 2万+

Blender软件导出地形到Gazebo中

Blender软件导出地形到Gazebo中,并配置纹理、刚度、高度。

m0_70652514的博客 3376

查看电脑mac地址+主机名+用户名并导出

张三:李四,应公司要求,今天下班前必须将这张表格里面用户电脑的mac地址统计出来!李四:我该怎么办呢?一个一个查看,太没有效率了吧!对了,我可以做一个bat脚本啊!

拥抱着青春 1970

从专利库到Zemax:一个6mm定焦镜头从零到交付的完整设计流程(含CodeV转换技巧)

本文详细介绍了6mm定焦镜头从专利库检索到最终交付的全流程设计,重点解析了CodeV与Zemax工具链的无缝衔接技巧。通过实际案例展示规格定义、专利筛选、结构适配、非球面优化等关键步骤,帮助光学设计工程师提升设计效率和制造良率。特别包含CodeV转换Zemax的实用技巧,适用于机器视觉和安防镜头开发。

weixin_42561040的博客 160

深信服PT1-AF实验考试

深信服PT1-AF实验考试实验练习可以去深信服的在线实验平台(链接如下):深信服在线实验平台 (sangfor.com.cn)实验考试其实就是把所有的每一部分实验综合了起来以下内容仅做参考,不确保一样。

m0_72019240的博客 7106

电路抗干扰原理及应用(1)

电路抗干扰原理——介绍干扰源、干扰途径、抗干扰技术(接地技术)

qq_34758408的博客 2059

SAP公司间采购后台配置及前台操作详解

公司间采购后台配置及前台操作详解 SAP 实施中公司间交易几乎每个项目都会有此业务需求,比如内地很多公司都会在香港设置贸易型子公司。通过香港公司接单,然后转内地公司生产,或内地公司通过香港公司采购进口原材料,这些业务必然会涉及到公司间交易,下面我将详细说明下SAP是如何实现这种业务场景的,供大家参考。 配置前必须前台先创建公司间供应商主数据和客户主数据 1. 创建相应的客户主数据 功能说明 公司间...

weixin_40672823的博客 1万+

手把手教你学simulink实例--基于Simulink的船舶发电柴油机建模与健康状态研究

船舶发电柴油机是现代船舶电力系统的核心设备,为船舶提供稳定的电能供应。然而,由于长期运行在复杂的海洋环境中,船舶发电柴油机容易受到磨损、腐蚀和疲劳等损伤的影响,导致其性能下降甚至发生故障。因此,对船舶发电柴油机进行建模和健康状态监测具有重要意义。本项目旨在使用MATLAB/Simulink平台,建立船舶发电柴油机的动力学模型,并通过仿真分析其健康状态,预测潜在故障,从而提高船舶运行的安全性和经济性。

MHD0815的博客 1323

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

上一篇: 华为OD机试 - 整型数组按个位值排序 - 数组(Python/JS/C/C++ 2024 D卷 100分)
下一篇: 华为OD机试 - 最大报酬 - 0/1 背包问题,动态规划(Java 2024 E卷 100分)
哪 吒
哪 吒 2022年度博客之星TOP 1 2022年度博客之星TOP 1 领域专家: 后端开发技术领域 领域专家: 后端开发技术领域
博客等级 码龄9年 59万+粉丝 2933原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

哪 吒

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值