3.27网易互联网算法第二题(AC)

mark 一下🤣
#闭环内追击问题,同速不相遇,异速度一定相遇
#知道三点位置坐标,知道初始位置和速度
import math
xa,ya,xb,yb,xc,yc = [0,23,0,3,100,0]
v1,d1 = [2,1]
v2,d2 = [1,1]
#print(d1 ^ d2)
# 写函数求欧式距离
def dis(x1,x2,y1,y2):
    return math.sqrt((x1-x2)*(x1-x2) + (y1-y2)*(y1-y2))
#print(dis(xa,xc,ya,yc))
abdis = dis(xa,xb,ya,yb)
acdis = dis(xa,xc,ya,yc)
bcdis = dis(xb,xc,yb,yc) 
if v1 == v2 == 0:
    print(-1)
else:
    #有速度
    if d1 ^ d2:
    #如果两个相向,一定相遇,异或为1
        if d1 == 0:
            t = abdis / (v1 + v2)
            print(t) #样例通过
        else:
            t = (acdis + bcdis) / (v1 + v2)
            print(t)
    else:
        #两人同向,AB点开始的追赶问题
        if v1 == v2:
            print(-1)
        elif v1 > v2:
            #小明追小红
            if d1 == 0:
                #A-B-C
                t = abdis / (v1 - v2)
                print(t)
            else:
                #A-c-B
                t = (acdis + bcdis) / (v1 - v2)
                print(t)
        else:
            #小红追小明
            if d1 == 0:
                #A-B-C
                t = (acdis + bcdis) / (v2 - v1)
                print(t)
            else:
                #A-c-B
                t = abdis / (v2 - v1)
                print(t)


#网易##实习##算法工程师#
全部评论
俺就看看,俺也不太懂
点赞 回复 分享
发布于 2022-03-28 15:53

相关推荐

投递美团等公司6个岗位
点赞 评论 收藏
分享
03-27 17:33
门头沟学院 Java
代码飞升:同学院本,你要注意hr当天有没有回复过,早上投,还要打招呼要推销自己,不要一个劲投
点赞 评论 收藏
分享
评论
2
2
分享

创作者周榜

更多
牛客网
牛客企业服务