有没有大佬能看看这个为什么会超时?顺便问问有什么可以改进的地方吗?
查看原帖
有没有大佬能看看这个为什么会超时?顺便问问有什么可以改进的地方吗?
351972
T_ANTINOMI楼主2024/5/20 21:47
r=0.0001
n=int(input())
m=1
s=[]
l=0
for i in range(n):
    d=input().split(' ')
    a,b=int(d[0]),int(d[1])
    if [a,b] in s:
        l+=1
        continue
    s.append([a,b])
    m+=1
    t=[]
    c=0
    for j in range(i-l):
        if a==s[j][0]:
            continue
        else:
            m+=1
            x=(s[j][1]-b)/(a-s[j][0])
            y=a*x+b
            f=False
            for k in range(c):
                if x+r>=t[k][0]and x-r<=t[k][0]and y+r>=t[k][1]and y-r<=t[k][1]:
                    m-=1
                    f=True
                    break
            if(f==False):
                t.append([x,y])
                c+=1
print(m)
2024/5/20 21:47
加载中...