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

蓝桥杯 8. 移动距离

移动距离

原题目链接

题目描述

X 星球居民小区的楼房全是一样的,并且按矩阵样式排列。楼房的编号为 1, 2, 3, ⋯⋯

当排满一行时,从下一行相邻的楼反方向排号。

例如,当小区排号宽度为 6 时,排列如下:

1  2  3  4  5  6
12 11 10 9  8  7
13 14 15 ...

问题

已知两个楼号 mn,需要求出它们之间的最短移动距离(只允许水平和垂直方向移动,不能斜着走)。


输入描述

输入一行,包含 3 个整数:

  • w:排号宽度;
  • m:楼号 m;
  • n:楼号 n。

数据范围:

  • 1 ≤ w, m, n ≤ 10000

输出描述

输出一个整数,表示 mn 两楼之间的最短移动步数


输入输出样例

示例 1

输入

6 2 8

输出

4

示例 2

输入

4 7 20

输出

5

c++代码

#include<bits/stdc++.h>using namespace std;int main() {int w, m, n, i, j, k, l;cin >> w >> m >> n;i = m / (w + 1), k = n / (w + 1);if (i % 2 == 0) j = m - i * w - 1;else j = (w - 1) - (m - (i * w) - 1);if (k % 2 == 0) l = n - k * w - 1;else l = (w - 1) - (n - (k * w) - 1);cout << abs(i - k) + abs(j - l);return 0;
}//by wqs

题目解析

一个结论
对于宽度为w的数字m

他在第m / (w + 1)行

如果行为偶数,它在第m - i * w - 1列

如果行为奇数,它在第(w - 1) - (m - (i * w) - 1)列

注意从下标0开始。

最后答案就是abs(i - k) + abs(j - l)

http://www.xdnf.cn/news/2179.html

相关文章:

  • 【QuPath】人工标注WSI
  • 产销协同是什么?产销协同流程有哪些?
  • 2025.04.26-淘天春招笔试题-第二题
  • AutoSAR从概念到实践系列之MCAL篇(二)——Mcu模块配置及代码详解(下)
  • Pygame事件处理详解:键盘、鼠标与自定义事件
  • QT对话框及其属性
  • Tauri文件系统操作:桌面应用的核心能力(入门系列四)
  • 深度解析责任链Filter模式:构建灵活可扩展的请求处理管道
  • Spring Boot 支持政策
  • 【数据结构与算法】从完全二叉树到堆再到优先队列
  • 【每天一个知识点】点乘(Dot Product)
  • 【C语言练习】004. 使用各种运算符进行计算
  • 【高频考点精讲】前端职业发展:如何规划前端工程师的成长路径?
  • 【白雪讲堂】构建与优化企业知识图谱的实战指南
  • 关于GoWeb(1)
  • 构建智能风控引擎的全流程设计指南
  • 从基础到实战的量化交易全流程学习:1.2 金融市场基础
  • 主流 LLM 部署框架
  • DIFY 浅尝 - DIFY + Ollama 添加模型
  • 使用 LangGraph 和 Elasticsearch 构建强大的 RAG 工作流
  • nuxt3项目搭建:一、初始化项目流程指南
  • 【微知】/proc中如何查看Linux内核是否允许加载内核模块?(/proc/sys/kernel/modules_disabled)
  • 关于汇编语言与接口技术——算术运算程序的设计
  • 高精度运算(string函数)
  • 【Linux应用】交叉编译环境配置,以及最简单粗暴的环境移植(直接从目标板上复制)
  • 【OSG学习笔记】Day 10: 字体与文字渲染(osgText)
  • ※※惯性时间常数与系统惯量定义、区别、联系
  • 水果成篮--LeetCode
  • Java—— 包装类
  • Arduino+ESP01S烧录