3 条题解

  • 0
    @ 2024-5-15 11:53:40
    n,d=map(int,input().split())
    x=[]
    y=[]
    e=[]
    flag=1
    for i in range(n):
        xi,yi=map(int,input().split())
        x.append(xi);y.append(yi)
        if yi>d:
            flag=0
            break
    if flag==0:
        print("无法覆盖")
    else:
        for i in range(n-1):
            for j in range(i+1,n):
                if x[j]<x[i]:
                    x[i],x[j]=x[j],x[i]
                    y[i],y[j]=y[j],y[i]
        #print(x)
        #print(y)
        for i in range(n):
            flag=1
            if len(e)==0:
                ei=(d**2-y[i]**2)**0.5+x[i]
                e.append(ei)
            else:
                for tot in e:
                    if (x[i]-tot)**2+y[i]**2<=d**2:
                        flag=0
                        break
                if flag==1:
                    ei=(d**2-y[i]**2)**0.5+x[i]
                    e.append(ei)
        ans=len(e)
        print(ans)
    '''
    3 5
    6 3
    -1 4
    5 4
    '''
    

    信息

    ID
    928
    时间
    1000ms
    内存
    256MiB
    难度
    8
    标签
    递交数
    131
    已通过
    21
    上传者