当前位置:   article > 正文

平面切分 python 蓝桥杯_蓝桥杯平面切分python

蓝桥杯平面切分python

题目描述

平面上有 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。

输出描述

一个整数代表答案。

输入输出样例

示例
输入
  1. 3
  2. 1 1
  3. 2 2
  4. 3 3
输出
6

运行限制

  • 最大运行时间:1s

  • 最大运行内存: 256M

  1. n = eval(input())
  2. line = [tuple(map(int,input().split(" "))) for i in range(n)]
  3. se = set(line)
  4. line = list(se) #去重后的线
  5. if line:
  6. ans=2
  7. for i in range(1,len(line)):
  8. a1,b1=line[i]
  9. pos=set()
  10. for j in range(i):
  11. a2,b2=line[j]
  12. if a1==a2:
  13. continue
  14. x=(b1-b2)/(a1-a2) #斜率
  15. y=a1*x+b1
  16. pos.add((x,y))
  17. ans += len(pos)+1
  18. print(ans)
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/article/detail/48364
推荐阅读
相关标签
  

闽ICP备14008679号