问题描述】
平面上有 N 条直线,其中第 i 条直线是 y = Ai · x + Bi。

【输入格式】
第一行包含一个整数 N。
以下 N 行,每行包含两个整数 Ai; Bi。

【输出格式】
一个整数代表答案。

【样例输入】

3
1 1
2 2
3 3
1
2
3
4

【样例输出】

6
1

【评测用例规模与约定】
对于 50% 的评测用例, 1 ≤ N ≤ 4, −10 ≤ Ai; Bi ≤ 10。
对于所有评测用例, 1 ≤ N ≤ 1000, −100000 ≤ Ai; Bi ≤ 100000。

【答案提交】
请计算这些直线将平面分成了几个部分。
先去重,然后按照顺序每新增一个,新增的部分的个数=这一条线与前面的的线的交点个数+1,时间复杂度O(n^2long(n))

#include<iostream>
#include<cstring>
#include<set>
using namespace std;
set<pair<long double,long double> > se;//交点
const int N = 1005;
long double A[N];
long double B[N];
set<pair<long double,long double> > s;//所有不重复的直线
set<pair<long double,long double> >::iterator it;
int main()
{int n,i,j,x,y;cin>>n;for(i=0;i<n;i++){cin>>x>>y;s.insert(make_pair(x,y));//去掉重复的直线 }n = s.size();for(i=0,it=s.begin();it!=s.end();it++,i++){A[i]=(*it).first;B[i]=(*it).second;}long long ans=2;set<pair<long double,long double> > se;for(i=1;i<n;i++){for(j=i-1;j>=0;j--){//先判断是否平行,因为之前已经去重,所以直接判断斜率是否相等就行 if(A[i]==A[j])continue;long double x=(B[j]-B[i])/(A[i]-A[j]);long double y=(A[j]*B[i]-A[i]*B[j])/(A[j]-A[i]);se.insert(make_pair(x,y));}int n2=se.size();ans+=(n2+1);se.clear();}cout<<ans<<endl;
}

转载于这里

平面切分(平面直线)相关推荐

  1. python 求平面两点距离_Python求平面内点到直线距离的实现

    近期遇到个问题,需要计算平面内点到直线的距离,发现数学知识都还给老师了,度娘后找到计算方法,特此记录. 点到直线的计算公式: 通过公式推导,得到信息: A:直线斜率 B:固定值-1 C:直线截距b 转 ...

  2. 空间平面相交的直线的计算及其源码

    目的:在写图形学项目中,常常遇到三维平面相交的情况.它也是图形学的基础 空间平面和直线一样,主要两种表达方式. 1)通用的代数表达方式: ax+by+cz+d=0ax+by+cz+d=0ax+by+c ...

  3. PCL点云处理之平面内两直线求交点(五十)

    PCL点云处理之平面内两直线求交点(五十) 一.两点求直线 二.两直线求交点 二.代码 一.两点求直线 设两个点为 (x1, y1) , (x2, y2),则有: A = y2 - y1 B = x1 ...

  4. 高中数学必修2:平面解析几何之直线与圆、圆与圆的位置关系

    今天分享关于高中数学必修2平面解析几何中的直线与圆.圆与圆的位置关系 知识点,分别从三个方面讲解,用5个经典习题进行解答全过程. 1.直线与圆的位置关系 2.圆与圆的位置关系 2.求圆的弦长的常用方法 ...

  5. LeetCode149. 直线上最多的点数: 给定一个二维平面,平面上有 n 个点,求最多有多少个点在同一条直线上。

    给定一个二维平面,平面上有 n 个点,求最多有多少个点在同一条直线上. 示例 1: 输入: [[1,1],[2,2],[3,3]] 输出: 3 解释: ^ | | o | o | o ±------- ...

  6. 给定一个二维平面,平面上有 n 个点,求最多有多少个点在同一条直线上。

    需求:给定一个二维平面,平面上有 n 个点,求最多有多少个点在同一条直线上. 分析思路: 1.将所有点二维坐标化,即定义出所有点的x,y坐标值 2.遍历出所有取出两点的情况(不考虑先后顺序),根据任意 ...

  7. 第十一届蓝桥杯C/C++ 试题I 平面切分

    水了个省一,写个题解 解题思路: 在同一个平面内,如果添加的每一条直线互不相交,则每添加一条直线,就会增加一个平面:当添加一条直线时,这条直线与当前平面内已有直线每产生一个不同位置的交点时,这条直线对 ...

  8. python计算点到直线的距离_Python求平面内点到直线距离的实现

    近期遇到个问题,需要计算平面内点到直线的距离,发现数学知识都还给老师了,度娘后找到计算方法,特此记录. 点到直线的计算公式: 通过公式推导,得到信息: a:直线斜率 b:固定值-1 c:直线截距b 转 ...

  9. 如何判断两个平面相交_数学提高平面与平面垂直的判定方法是什么

    一般地,两个平面相交,如果它们所成的二面角是直二面角,就说这两个平面互相垂直.一个平面过另一个平面的垂线,则这两个平面垂直. 平面与平面垂直的判定方法 1.定义法:如果两个平面所成的二面角为90°,那 ...

  10. 计算平面与平面的交线(附c++实现)

    计算平面与平面的交线 理论基础: 公式推导: 程序实现: 结果验证: 理论基础: 空间中的直线可由一点坐标和一方向向量来表示,在计算两平面的交线时,可先由两平面法向量的叉乘来得到交线方向向量,再求取直 ...

最新文章

  1. [转]NS2添加多接口
  2. awk分析nginx日志里面的接口响应时间
  3. php+mysql实现数据分批插入
  4. lambdas for_Java 8发布了! — Lambdas教程
  5. hive 导入hdfs数据_将数据加载或导入运行在基于HDFS的数据湖之上的Hive表中的另一种方法。
  6. ASP.NET 常见参考项目的 UI、BLL 、Model 、 DAL 分析
  7. oracle不弹出另存为,Oracle另存为~
  8. Oracle生成流水号函数
  9. SPI 机制-插件化扩展功能
  10. 【Codeforces 1114C】Trailing Loves (or L'oeufs?)
  11. Java实现人力资源管理系统
  12. 如何查询Windows XP 系统是多少位的
  13. html input文字缩进,使用HTML Tidy来缩进HTML代码?
  14. 徐思201771010132《面向对象程序设计(java)》第一周学习总结
  15. 2022年中式烹调师(初级)考试题库及在线模拟考试
  16. 台式计算机硬盘的尺寸通常为多少英寸,电脑硬件参数之硬盘
  17. idea中数据库可视化
  18. android native 代码内存泄露 定位方案
  19. 爬虫 抖音用户页 所有无水印视频 批量下载 最新 (2021-3-18 可用--失效我会更新)
  20. Excel模板数据填充导出

热门文章

  1. java excel 透视_java基于poi导出excel透视表代码实例
  2. Spring Boot(启动小彩蛋)
  3. 医学案例统计分析与SAS应用(笔记)一
  4. shell 浮点数运算bc
  5. Expected ']' Expected expression
  6. 基于multisim的fm调制解调_基于multisim的fm调频与鉴频电路设计与仿真
  7. android音乐播放器之----天天动听
  8. 关于syGate代理端口冲突问题
  9. 【光链路分析四】OTDR文件解读接口二次开发说明
  10. React Native 手势触摸事件机制详解(进阶篇)