QMLX


私信TA

用户名:QMLX

访问量:1363

签 名:

等  级
排  名 29337
经  验 520
参赛次数 0
文章发表 3
年  龄 0
在职情况 学生
学  校 中南民族大学
专  业

  自我简介:

解题思路:建立新的坐标系,转换坐标,判断距离

Screenshot_20230404_110318_com.huawei.browser.png

图中坐标只是表示每个六边形的相对位置,不要理解成几何中心的平面坐标!
注意事项:关键在于如何建一个坐标系使得方便判断距离

参考代码:

d1,p1,q1,d2,p2,q2 = map(int,input().split())

xdir = [-2,-1,1,2,1,-1]    #六个基本方向的坐标(竖着看对应)

ydir= [0,1,1,0,-1,-1]

def switchloc(d,p,q):#坐标转换函数

    x = xdir[d]*p + xdir[(d+2)%6]*q    #此处妙啊

    y = ydir[d]*p + ydir[(d+2)%6]*q

    return x,y

x1,y1 = switchloc(d1,p1,q1)

x2,y2 = switchloc(d2,p2,q2)

x_abs,y_abs = abs(x1-x2),abs(y1-y2)

if x_abs >= y_abs:print((x_abs+y_abs)//2)    #判断距离,坐标建得好条件就好判断

else:print(y_abs)

    

 

0.0分

3 人评分

  评论区

好极了,我懂了
2024-04-07 15:50:22
  • «
  • 1
  • »