前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >蓝桥杯  移动距离 -----------Five-菜鸟级

蓝桥杯  移动距离 -----------Five-菜鸟级

作者头像
Fivecc
发布于 2022-11-21 07:53:08
发布于 2022-11-21 07:53:08
27900
代码可运行
举报
文章被收录于专栏:前端ACE前端ACE
运行总次数:0
代码可运行

                                   移动距离 X星球居民小区的楼房全是一样的,并且按矩阵样式排列。其楼房的编号为1,2,3... 当排满一行时,从下一行相邻的楼往反方向排号。 比如:当小区排号宽度为6时,开始情形如下: 1  2  3  4  5  6 12 11 10 9  8  7 13 14 15 ..... 我们的问题是:已知了两个楼号m和n,需要求出它们之间的最短移动距离(不能斜线方向移动) 输入为3个整数w m n,空格分开,都在1到10000范围内 w为排号宽度,m,n为待计算的楼号。 要求输出一个整数,表示m n 两楼间最短移动距离。 例如: 用户输入: 6 8 2 则,程序应该输出: 4 再例如: 用户输入: 4 7 20 则,程序应该输出: 5 资源约定: 峰值内存消耗 < 256M CPU消耗  < 1000ms 请严格按要求输出,不要画蛇添足地打印类似:“请您输入...” 的多余内容。 所有代码放在同一个源文件中,调试通过后,拷贝提交该源码。 注意: main函数需要返回0 注意: 只使用ANSI C/ANSI C++ 标准,不要调用依赖于编译环境或操作系统的特殊函数。 注意: 所有依赖的函数必须明确地在源文件中 #include <xxx>, 不能通过工程设置而省略常用头文件。 提交时,注意选择所期望的编译器类型。

思路: 这题找找规律就好了  看看序列加上 坐标后变成什么了

   目标  2 的坐标 (0 ,1) 目标  8 的坐标 (1 ,4)  他们的横纵坐标 相减 (1-0,4-1)===> (1,3)          再 横纵坐标相加 1+3=4   (想想 此时就是从(0,0)点 到(1,3)点 不能斜着走最最短 直接横纵坐标相加即可)

      于是就得获取两点坐标 ,坐标直接通过取整取模就可获得 (毕竟 他是按顺序编号的)     把原序列 全部减1 从0 开始(为了好取模取整  C语言习惯0 开始) 然后找坐标  ,通过取整可以得到属于哪一行 取模得到那一列    (但为偶数行的时候 去模后的值就是距离最左边距离,奇数行时 取模后的值是距离右边的距离 所以 要用最每行长度-取模的值)

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
#include<stdio.h>
int abs(int a){// 取绝对值 
	if(a>0)return a;
	else return -a;
}
int main(){
    int w,A,B,x1,x2,y1,y2,res;
    while(scanf("%d%d%d",&w,&A,&B)!=EOF){
      A--,B--;//数值都-1 是将序号从 0 开始 好用取整 取模  
	  x1=A/w;// 对A 点取整 可以确定在那一行 
	  if(x1%2==0) y1=A%w;// A点取模 (取余) 可以确定在那一列 
	  else y1=(w-1)-A%w;
	  //因为翻转的缘故 所以 当 为 奇数行的时候是从右边开始 那么到左边的距离就该 
	  //用每行长度减去该数到右边的值  因为下标是从0 开始 
	  //所以 长度 w-1 (数值为5 就代表 长度6 ) 
	  //B 点坐标 同上 
	  x2=B/w;
	  if(x2%2==0) y2=B%w;
	  else y2=(w-1)-B%w;
      res=abs(x1-x2)+abs(y1-y2);// 两坐标 横纵坐标 相减 即是 最短距离 
     printf("%d\n",res);
  }
	return 0;
} 
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2018-12-13,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
蓝桥杯 C语言省赛 习题3 移动距离
题目: 移动距离 X星球居民小区的楼房全是一样的,并且按矩阵样式排列。其楼房的编号为1,2,3... 当排满一行时,从下一行相邻的楼往反方向排号。 比如:当小区排号宽度为6时,开始情形如下: 1 2 3 4 5 6 12 11 10 9 8 7 13 14 15 16 17 18 19 ... ... ... 输入为3个整数w m n,空格分开,都在1到10000范围内我们的问题是:已知了两个楼号m和n,需要求出它们之间的最短移动距离(不能斜线方向移动) w为排号宽度,m,n为待计算的楼号。 要求输出一个
神无月
2018/07/13
7230
蓝桥杯之移动距离
移动距离 X星球居民小区的楼房全是一样的,并且按矩阵样式排列。其楼房的编号为1,2,3… 当排满一行时,从下一行相邻的楼往反方向排号。 比如:当小区排号宽度为6时,开始情形如下: 1 2 3 4 5 6 12 11 10 9 8 7 13 14 15 ….. 我们的问题是:已知了两个楼号m和n,需要求出它们之间的最短移动距离(不能斜线方向移动)
Max超
2019/01/21
4700
OJ刷题记录:问题 A: 蓝桥杯(C/C++组)2015-8 移动距离
题目要求: X星球居民小区的楼房全是一样的,并且按矩阵样式排列。其楼房的编号为1,2,3… 当排满一行时,从下一行相邻的楼往反方向排号。 比如:当小区排号宽度为6时,开始情形如下:
英雄爱吃土豆片
2020/10/29
4590
第六届蓝桥杯JavaC组省赛真题——详细答案对照(包含垒骰子)
Excel表的格子很多,为了避免把某行的数据和相邻行混淆,可以采用隔行变色的样式。 小明设计的样式为:第1行蓝色,第2行白色,第3行蓝色,第4行白色,.... 现在小明想知道,从第21行到第50行一共包含了多少个蓝色的行。
红目香薰
2022/11/29
5830
第六届蓝桥杯JavaC组省赛真题——详细答案对照(包含垒骰子)
1902.马拉松(数学思维)
由于该路线设置在市中心,街道呈网格状交错,因此两个检查站点 (x1,y1) 与 (x2,y2) 之间的距离应该为 |x1−x2|+|y1−y2|。
浪漫主义狗
2022/07/11
3800
第十一届蓝桥杯决赛JavaC组真题——详细答案对照(完整版)
  小蓝特别喜欢 2 ,今年是公元 2020 年,他特别高兴。   他很好奇,在公元 1 年到公元 2020 年(包含)中,有多少个年份的数位中包含数字 2 ?
红目香薰
2022/11/29
7920
第十一届蓝桥杯决赛JavaC组真题——详细答案对照(完整版)
第十二届蓝桥杯软件类省赛python组
小蓝准备用这些卡片来拼一些数,他想从1开始拼出正整数,每拼一个,就保存起来,卡片就不能用来拼其它数了。
润森
2022/09/22
6730
第十二届蓝桥杯软件类省赛python组
曼哈顿距离(Manhattan Distance)
曼哈顿距离(Manhattan Distance)也称为城市街区距离,是一种在几何空间中测量两点之间距离的度量方式。它表示两个点在标准坐标系上的绝对轴距总和。
jack.yang
2025/04/05
1490
曼哈顿距离(Manhattan Distance)
Matlab——二维绘图(最为详细,附上相关实例)
为了帮助各位同学备战数学建模和学习Matlab的使用,今天我们来聊一聊 Matlab 中的绘图技巧吧!对于 Matlab 这样的科学计算软件来说,绘图是非常重要的一项功能。在数据处理和分析时,良好的绘图技巧能够更直观地呈现数据,增强数据可读性和可视性
是Nero哦
2024/01/18
2.2K0
Matlab——二维绘图(最为详细,附上相关实例)
【C++】前缀和算法专题
⽤ dp[i] 表⽰: [1, i] 区间内所有元素的和,那么 dp[i - 1] ⾥⾯存的就是 [1,i - 1] 区间内所有元素的和,那么:可得递推公式: dp[i] = dp[i - 1] +arr[i] ;
啊QQQQQ
2024/11/19
840
【C++】前缀和算法专题
按键精灵——如何留下鼠标移动轨迹
某些场景,需要留下鼠标移动轨迹,比较合乎视觉感受,不然光标闪来闪去,会不会翻车且不说,对眼睛肯定是不好的刚好上周有小伙伴咨询后台鼠标移动的问题,虽然我没解决,也不知道最终大佬给的方案是否解决了问题。但是解决问题的思路值得探讨和学习。
Ed_Frey
2019/12/19
5.1K0
蚁群算法(ACO)最短路径规划(MATLAB)
蚁群算法最早是由Marco Dorigo等人在1991年提出,他们在研究新型算法的过程中,发现蚁群在寻找食物时,通过分泌一种称为信息素的生物激素交流觅食信息从而能快速的找到目标,据此提出了基于信息正反馈原理的蚁群算法。
里克贝斯
2021/05/21
2.5K0
蚁群算法(ACO)最短路径规划(MATLAB)
数学建模之MATLAB画图汇总
1.plot()函数 plot函数用于绘制二维平面上的线性坐标曲线图,要提供一组x坐标和对应的y坐标,可以绘制分别以x和y为横、纵坐标的二维曲线。 例:
全栈程序员站长
2022/07/21
3K0
数学建模之MATLAB画图汇总
php读取pdf文件_php怎么转换成pdf
Orientation:orientation属性用来设置文档打印格式是“Portrait”还是“Landscape”。 Landscape为横式打印,Portrait为纵向打印
全栈程序员站长
2022/10/04
13.3K0
【算法专题】前缀和
题目:给定一个长度为n的数组 a1​, a2​, …an. 接下来有q次查询, 每次查询有两个参数l, r. 对于每个询问, 请输出 al + al + 1 + … + ar
YoungMLet
2024/03/01
1430
【算法专题】前缀和
matlab中plotyy设置曲线颜色,matlab plotyy 颜色「建议收藏」
MATLAB 画双纵坐标 plotyy 的用法 对数坐标 MATLAB 画双纵坐标具有两个纵坐标标度的图形 在 MATLAB 中,如果需要绘制出具有不同纵坐标标度的两个图形,可以使用 ……
全栈程序员站长
2022/07/05
1.7K0
一文搞懂Matlab画图那些事(上篇)
本文主要介绍了在MATLAB中利用绘图函数进行二维图形绘制的方法和技巧,包括曲线、散点图、饼图、条形图等。同时介绍了绘图辅助函数,如图形标记、坐标轴标注等,以及如何进行多图绘制和图形处理。
码科智能
2018/01/03
3.1K0
一文搞懂Matlab画图那些事(上篇)
1062. 计算曼哈顿距离
题目描述 给出平面上两个点的坐标(x1,y1),(x2,y2),求两点之间的曼哈顿距离。曼哈顿距离=|x1-x2|+|y1-y2|。 输入 一行四个空格隔开的实数,分别表示x1,y1,x2,y2。 输出 输出一个实数表示曼哈顿距离,保留三位小数。 样例输入 输出一个实数表示曼哈顿距离,保留三位小数。 样例输出 3.600 数据范围限制 -10000<=x1,y1,x2,y2<=10000 1 #include<iostream> 2 #include<cstring> 3 #include<cmath
attack
2018/04/12
8700
2015年第六届蓝桥杯C/C++B组省赛题目解析
一、奖券数目 有些人很迷信数字,比如带“4”的数字,认为和“死”谐音,就觉得不吉利。 虽然这些说法纯属无稽之谈,但有时还要迎合大众的需求。某抽奖活动的奖券号码是5位数(10000-99999),要求其中不要出现带“4”的号码,主办单位请你计算一下,如果任何两张奖券不重号,最多可发出奖券多少张。 请提交该数字(一个整数),不要写任何多余的内容或说明性文字。 分析:直接枚举10000-99999之间的数字,如果带4,直接排除;不带4的,记录一次,直到枚举完后输出。 #include <iostream> usi
Zoctopus
2018/06/04
8700
河南工程学院2022级新生周赛(三)题解
A. 6男 ---- 原题链接 题目大意: 给定一个字符串 S,求最长的连续的 6 的字串的长度。 S 可能含有空格。 ---- 思想: 签到题。 读入时注意空格。 ---- 代码: #include <iostream> #include <cstring> #include <cstdio> #include <algorithm> #include <cmath> #include <sstream> #include <vector> #include <queue> #include <stac
浪漫主义狗
2022/10/09
3010
相关推荐
蓝桥杯 C语言省赛 习题3 移动距离
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验