![](https://img-blog.csdnimg.cn/20201014180756923.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
计算几何
dinlon
这个作者很懒,什么都没留下…
展开
-
观星(计算几何/凸包/多边形面积)
观星 对于平面上有n个点分为三类,要求寻找一个三角形,三个顶点分别属于这三类,求解最大面积。 N<=3000 首先考虑到O(n2)O(n^2)O(n2)的枚举,然后对于另外一种考虑这个点的位置,显然它应该在凸包上,因为我们相当于要寻找距离某个直线最远的点,所以相当于用一个直线来截。 然后考虑在凸包上二分,首先如果直接求凸包,斜率不是单调的,没法二分,或许可以三分。我们可以分别求出上凸包和下凸包,分别找到最远点,上凸包的斜率单增,下凸包的斜率单减,所以可以直接二分。 此时就不用极角排序了,直接按照横坐标原创 2021-02-18 20:39:42 · 167 阅读 · 0 评论 -
#2961. 共点圆(cdq分治)
#2961. 共点圆 每次加入一个经过原点的圆,或者询问给定点是否在所有圆内部 首先我们的想法还是从几何角度出发,发现等价于点在所有圆的交内部,但是这个交的情况似乎不是很好维护,这是第一个思路。 第二个思路就是利用解析式,发现点在圆的内部等价于一条直线在所有圆心的下方,那么我们维护一个下凸包即可,但是维护动态凸包很麻烦,所以我们可以cdq分治,这样只需要一个单调栈就可以维护凸包了。 ...原创 2021-01-18 17:41:53 · 26 阅读 · 0 评论 -
CF603D Ruminations on Ruminants(计算几何/Simson theorem)
CF603D Ruminations on Ruminants 给定n条直线,两两不平行,且任意三条直线不经过同一个点,然后求解满足原点在外接圆上的由三条直线围成的三角形有多少个。 首先这道题只需要知道Simson theorem就可以做了。 定理内容是三角形外接圆上的点到三角形三边的射影共线。 逆定理是满足到三角形三边射影共线的点在三角形外接圆上。 那么我们只需要求解出原点到每条直线的垂足,然后枚举一个点,计算出这个点到后面所有点的斜率,然后相同斜率的就可以产生贡献。 这里有个技巧,就是斜率不存在的点我们原创 2021-01-16 10:05:09 · 93 阅读 · 0 评论