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

做高端网站wordpress下拉导航

做高端网站,wordpress下拉导航,深圳广告公司招聘,个人网站做项目[蓝桥杯 2015 省 B] 移动距离 题目描述 X 星球居民小区的楼房全是一样的,并且按矩阵样式排列。其楼房的编号为 $1,2,3, \cdots $ 。 当排满一行时,从下一行相邻的楼往反方向排号。 比如:当小区排号宽度为 6 6 6 时,开始情形如…

[蓝桥杯 2015 省 B] 移动距离

题目描述

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

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

比如:当小区排号宽度为 6 6 6 时,开始情形如下:

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

我们的问题是:已知了两个楼号 m m m n n n,需要求出它们之间的最短移动距离。(不能斜线方向移动)

输入格式

输入为 3 3 3 个整数 w , m , n w,m,n w,m,n,空格分开,都在 1 1 1 10000 10000 10000 范围内。

w w w 为排号宽度, m , n m,n m,n 为待计算的楼号。

输出格式

要求输出一个整数,表示 m m m n n n 两楼间最短移动距离。

样例 #1

样例输入 #1

6 8 2

样例输出 #1

4

样例 #2

样例输入 #2

4 7 20

样例输出 #2

5

提示

时限 1 秒, 256M。

蓝桥杯 2015 年省赛 B 组 H 题。

思路

先明白题意,其实就是找矩阵中怎么从一个点移动到另一个点,求总的步数。
再看下面这个图片,题目指定的楼号其实就是序号,如果按这样构造的矩阵,看 8 到 2 的距离的话**,
本质上是 8 的坐标 - 2 的坐标求和**
8(1,4) 2(0,1) (1-0) + (4-1)=4
在这里插入图片描述
这个肯定是二维数组,在二维数组中,每个元素都有自己的坐标,在给数组赋值时,其实就可以判断此时的序号是不是等于等会要判断的楼号,如果相等的话,就保存下坐标,当给定的两个坐标都知道时,就不必再继续赋值,直接退出循环,计算数值。

#创建一个w*10010的矩阵 ,每个位置为0

a = [[0]*w for i in range(10010)]

#在矩阵中,坐标的移动方向

dirction = [(0,1),(1,0),(0,-1),(1,0)]#右 下 左 下

#处理移动的逻辑 往右到头就去下面,往左到头继续往下走

while num<10001:#据题目知楼号在1-10000num+=1a[x][y] = numnewx = x + dirction[index][0]newy = y + dirction[index][1]if   newx<0 or newy>=6 or newy <0:index = (index+1)%4newx = x + dirction[index][0]newy = yindex = (index +1)%4x = newxy = newy

#判断是否等于输入的楼号

if num == m:x1,y1 = x,yind_x1 = Trueif num == n:x2,y2 = x,yind_x2= Trueif ind_x1 ==True and ind_x2 ==True:break

总代码


import math
w,m,n = map(int,input().split())
a = [[0]*w for i in range(10010)]
num=0
x,y=0,0
index= 0
x1,y1=0,0
ind_x1,ind_x2 = False,False
dirction = [(0,1),(1,0),(0,-1),(1,0)]#右 下 左 下
while num<10001:num+=1a[x][y] = numif num == m:x1,y1 = x,yind_x1 = Trueif num == n:x2,y2 = x,yind_x2= Trueif ind_x1 ==True and ind_x2 ==True:breaknewx = x + dirction[index][0]newy = y + dirction[index][1]if   newx<0 or newy>=w or newy <0:index = (index+1)%4# print("index_f",index)newx = x + dirction[index][0]newy = yindex = (index +1)%4# print("index_l",index)x = newxy = newy# print("value_x,value_y",x,y)
# for i in a:
#     for num in i:
#         print(f"{num:3d}",end="")     
#     print()
# print(x1,y1)
# print(x2,y2)
ans = abs(x1-x2) + abs (y1-y2)
print(ans)
http://www.yayakq.cn/news/225453/

相关文章:

  • 网站漂浮图怎么做自己怎么创建微信公众号
  • 美食网站建设合同范例网页游戏传奇大全
  • 网站自己怎么做优化内部网站建设软件
  • 网站策划书的编写个人网上银行
  • 查询建设工程规范的网站企业登记
  • 那里有正规网站开发培训学校wordpress cp 部署
  • 旅游门票做的最好的是哪个网站企业网站建站流程
  • 织梦网站更改主页链接contrast wordpress
  • 上海网站设计培训班如何创建游戏网站
  • 做任务赚话费的网站wordpress 极简模版
  • 建设银行兰州分行网站博敏 网站开发
  • 注册top域名做公司网站wordpress 开启链接
  • 做 爱 网站小视频下载网络管理系统的每个节点都包含一组与管理有关的软件
  • 定制网站开发公司排名宝塔重装WordPress
  • 做网站在线支付系统多少钱工信部备案管理系统
  • 服务器租用相关网站工作室创业项目
  • 昆明网站建设c3sales1534939978姐的微信德惠市
  • 工程建设监理网站企业网站的建立费用 作什么科目
  • 宝盈集团直营网站怎么做温州网站建设模板总部
  • 免费网站注册免费创建网站做网络营销推广途径
  • 网站搭建服务器需要什么学网站开发难吗
  • 知名自适应网站建设哪家好ppt模板资源网站
  • 苏州网站设计营销公司建设一个网站价格
  • 怎么在网站挂黑链接wordpress 访问慢
  • 福安 网站设计wordpress问题解决方法
  • wordpress加载视频网站优化比较好的公司
  • php网站开发所需要的软件网站功能框架
  • wordpress怎么给别人建站医药网站怎么做
  • 小语种网站怎么做企业所得税怎么征收几个点
  • 凡建网站电影网站如何优化