赞
踩
平面上有 NN 条直线,其中第 ii 条直线是 y = A_i \times x + B_iy=Ai×x+Bi。
请计算这些直线将平面分成了几个部分。
第一行包含一个整数 NN。
以下 NN 行,每行包含两个整数 A_i, B_iAi,Bi。
其中,1 \leq N \leq 1000, −10^5 \leq A_i,B_i \leq 10^51≤N≤1000,−105≤Ai,Bi≤105。
一个整数代表答案。
输入
- 3
- 1 1
- 2 2
- 3 3
输出
6
最大运行时间:1s
最大运行内存: 256M
- n = eval(input())
- line = [tuple(map(int,input().split(" "))) for i in range(n)]
- se = set(line)
- line = list(se) #去重后的线
- if line:
- ans=2
- for i in range(1,len(line)):
- a1,b1=line[i]
- pos=set()
- for j in range(i):
- a2,b2=line[j]
- if a1==a2:
- continue
- x=(b1-b2)/(a1-a2) #斜率
- y=a1*x+b1
- pos.add((x,y))
- ans += len(pos)+1
- print(ans)

Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。