观星

对于平面上有n个点分为三类,要求寻找一个三角形,三个顶点分别属于这三类,求解最大面积。
N<=3000

首先考虑到O(n2)O(n^2)O(n2)的枚举,然后对于另外一种考虑这个点的位置,显然它应该在凸包上,因为我们相当于要寻找距离某个直线最远的点,所以相当于用一个直线来截。

然后考虑在凸包上二分,首先如果直接求凸包,斜率不是单调的,没法二分,或许可以三分。我们可以分别求出上凸包和下凸包,分别找到最远点,上凸包的斜率单增,下凸包的斜率单减,所以可以直接二分。

此时就不用极角排序了,直接按照横坐标为第一关键字,纵坐标为第二关键字排序即可,然后利用单调栈求解。
需要注意一个细节,就是横坐标相等的点只需要保留纵坐标最大或最小的,所以需要判断一下

然后考虑求解面积,多边形面积需要利用叉积求解,就是前后相邻点叉积之和,但是这样求出来的可能是负的,所以需要加上绝对值。

观星(计算几何/凸包/多边形面积)相关推荐

  1. POJ3348 Cows【凸包+多边形求面积】

    POJ3348Cows 凸包+多边形求面积 个人分类: 计算几何凸包 Language: Default Cows Time Limit: 2000MS   Memory Limit: 65536K ...

  2. python计算多边形面积_Python求凸包及多边形面积教程

    一般有两种算法来计算平面上给定n个点的凸包:Graham扫描法(Graham's scan),时间复杂度为O(nlgn):Jarvis步进法(Jarvis march),时间复杂度为O(nh),其中h ...

  3. 【SSL.1213】多边形面积(difficult)(计算几何)

    多边形面积(difficult) Description 中学生杰利陶醉于数学研究.他思考的问题对于专家而言可能太多简单,但作为一个15岁的业余爱好者,他做得非常棒.他太热衷思考数学问题,以至于轻易就 ...

  4. matlab 二维凸包面积,PKU——3348——(凸包和计算多边形面积)

    //3348 Accepted 264K 0MS C++ 4016B//典型的凸包和计算多边形面积#include#include#include#include#include#includeusi ...

  5. 多边形面积_ssl1213_计算几何

    Description 中学生杰利陶醉于数学研究.他思考的问题对于专家而言可能太多简单,但作为一个15岁的业余爱好者,他做得非常棒.他太热衷思考数学问题,以至于轻易就学会了试用数学方法来解决碰到的问题 ...

  6. HDU 2036 改革春风吹满地(求多边形面积)

    转载请注明出处:http://blog.csdn.net/u012860063 题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2036 改革春风吹满地 ...

  7. pku 2954 Triangle pku 1265 Area Pick定理的应用 + 叉积求多边形面积

    Pick定理证明:http://translate.google.com/translate?u=http://episte.math.ntu.edu.tw/articles/sm/sm_25_10_ ...

  8. hdu2036(多边形面积)

    Description " 改革春风吹满地,  不会AC没关系;  实在不行回老家,  还有一亩三分地.  谢谢!(乐队奏乐)" 话说部分学生心态极好,每天就知道游戏,这次考试如此 ...

  9. 多边形面积(Area_Of_Polygons)

    原理: 任意多边形的面积可由任意一点与多边形上依次两点连线构成的三角形矢量面积求和得出. 分析:  由于给出的点是相对于我们的坐标原点的坐标,每个点实际上我们可以当作一个顶点相对于原点的向量,如下图所 ...

最新文章

  1. 科益展机器人_Smartguy robotics 2021年校园领军(实习)精英计划
  2. 利用cmake查看OpenCV的源码的方法
  3. 《JAVA与模式》之状态模式
  4. Google ToolBar 3.0 Beta试用
  5. Lync-技巧-2.启用-用户-启用-语音-设置-线路URI
  6. [NLP-CNN] Convolutional Neural Networks for Sentence Classification -2014-EMNLP
  7. linux桌面下雪,Ubuntu添加下雪效果
  8. 网络功能虚拟化NFV架构图
  9. 开课吧课堂:详解挂起、恢复和终止线程
  10. Jquery第一章表格新增功能课后练习第二节2/2
  11. 汽车行业的DMS系统 IT不变应万变
  12. java编译器eclipse_java编译器eclipse
  13. ubuntu设置桌面和锁屏背景
  14. 解决中文乱码问题的代码
  15. Wireshark抓包分析WLAN连接过程
  16. PS--人物皮肤处理流程(一)
  17. Udacity数据分析(进阶)-Prosper 贷款数据分析
  18. Android内存泄漏分析
  19. 第四章 资本主义制度的形成及其本质
  20. 为陶崇园争取正义懒人包1.0

热门文章

  1. python进程join的用法_python 进程介绍 进程简单使用 join 验证空间隔离
  2. 爱因斯坦留下的预言还有几个未实现?
  3. 网友半夜差点被沐浴露吓死,众人:原来不止我胆小....
  4. 史上最严重的忘拿钥匙事件 | 今日最佳
  5. 荐号 | 11个人工智能与大数据相关的个人、企业优质号
  6. 马化腾最崇拜的作家吴晓波《历代经济变革得失》读书笔记
  7. sql 多表多行模糊查询_从零开始学习SQL(五)多表查询
  8. lua loadstring传递参数_lua学习之函数篇
  9. micropython 网络驱动_network_网卡驱动
  10. opentrace在mysql中使用_采用OpenReplicator解析MySQL binlog