蓝桥杯-移动距离--python

描述了一种编程挑战,需计算两个特定楼号在矩阵排列中的最短移动距离,通过巧妙转换和简单遍历解决,避免了复杂的搜索算法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

移动距离

题目描述

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 两楼间最短移动距离。

思路

简单题按要求实现列表,然后找到开始和结束一减就来了,刚开始拿到还以为是一道bfs题把bfs写出来试验了半天都没通过发现不对劲,结果三行代码解决的我去写了十几行bfs真是个大怨种

参考代码

w,m,n = map(int,input().split())
mp =
### 蓝桥杯 Python Turtle 示例代码与教程 #### 使用 `turtle` 库绘制图形的基础 Python 的 `turtle` 图形库是一个非常适合初学者学习编程的工具,它通过简单的命令控制屏幕上的“海龟”移动来绘制各种图案。在蓝桥杯等编程竞赛中,掌握 `turtle` 是一项重要的技能。 以下是几个典型的 `turtle` 绘制实例及其解释: --- #### 实例一:绘制一个蓝色的大圆点并附加一条线段 此示例展示了如何使用 `dot()` 方法绘制圆形,并结合方向调整和直线绘制功能完成一幅简单画面[^2]。 ```python import turtle turtle.color("blue") # 设置画笔颜色为蓝色 turtle.dot(100) # 绘制直径为100像素的圆点 turtle.right(90) # 右转90度(使画笔向下) turtle.forward(150) # 向前移动150单位距离 turtle.done() # 完成绘图,保持窗口打开 ``` 上述代码的结果是一幅由大圆点和垂直向下的线条组成的图像。 --- #### 实例二:绘制带有两种颜色填充的矩形区域 该例子进一步扩展了 `begin_fill()` 和 `end_fill()` 的应用,用于实现多边形的颜色填充[^3]。 ```python import turtle as t t.speed(1) # 设置速度为最慢模式以便观察过程 t.setup(800, 600, 0, 0) # 初始化窗口尺寸及位置参数 t.fillcolor("red") # 设定红色作为初始填充色 t.begin_fill() # 开始记录需要填满的部分 t.forward(180) # 前进180单位形成第一条边 t.left(90) # 左转90度转向左侧 t.forward(180) # 再次前进构成第二条边 t.goto(0, 0) # 返回起点封闭形状 t.end_fill() # 结束当前颜色填充操作 # 切换至黄色重新定义新区域 t.fillcolor("yellow") t.begin_fill() t.forward(180) t.right(90) t.forward(180) t.goto(0, 0) t.end_fill() t.hideturtle() # 隐藏画笔图标便于查看最终成果 t.done() # 屏幕停留等待关闭动作触发 ``` 这段脚本会生成两个重叠但不同色调的直角三角形结构。 --- #### 实例三:创建基础树状分枝模型 针对更复杂的场景需求,“树型图”的构建则体现了递归思维的重要性[^4]。下面提供了一个简化版方案供参考: ```python import turtle as t t.speed(5) # 提高执行效率但仍保留一定可见性 t.seth(90) # 将起始角度设为正上方即90° t.left(30) # 微调左倾角度准备首次分支生长路径 t.fd(80) # 移动指定长度模拟树枝延伸轨迹 t.bk(80) # 回退相同步数回到原点继续另一侧发展 t.right(60) # 改变右侧偏移量重复相似流程 t.fd(80) t.done() # 显示结果直至人为干预终止程序运行状态 ``` 以上片段仅呈现单层对称分布样式;如果希望获得更加逼真的树木外观,则需引入循环或者函数封装技巧加以改进优化。 --- #### 总结 通过上述三个具体案例可以看出,在参加诸如蓝桥杯这样的赛事之前熟练运用 `turtle` 不仅仅是满足基本任务要求那么简单,更重要的是能够启发选手们探索更多可能性从而激发创造力潜能[^1]。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值