计算几何【AcWing 算法进阶课】【OI-Wiki】
文章平均质量分 58
计算几何【AcWing 算法进阶课】【OI-Wiki】
ZhgDgE
这个作者很懒,什么都没留下…
展开
-
【高精浮点】关于long double的使用方法
听说今天桂林CCPC计算几何卡了double,就来学一下更高精的浮点long double。文章链接:long double 使用方法long double 高精度数据的使用总结:性质:double 占8字节,long double 占12字节,内存差的不算多。double 只能精确到小数点后 15位,long double 能精确到18位左右。写代码注意事项:宏定义:在程序开头宏定义#define double long double输入: scanf.原创 2021-11-07 20:27:28 · 23296 阅读 · 3 评论 -
【计几】闵可夫斯基和 && 二分判断点是否在凸包内
闵可夫斯基和算法(时间复杂度O(nlogn)O(nlogn)O(nlogn))官方定义:两个图形A,BA,BA,B的闵可夫斯基和C=(a+b∣a∈A,b∈B)C=(a+b|a∈A,b∈B)C=(a+b∣a∈A,b∈B)通俗一点:从原点向图形A内部的每一个点做向量,将图形B沿每个向量移动,所有的最终位置的并便是闵可夫斯基和(具有交换律)详细思路见博客:闵可夫斯基和核心代码:point v1[N], v2[N]; // 记录两个凸包的向量集struct polygon{ poin原创 2021-10-14 21:29:32 · 524 阅读 · 0 评论 -
【计几】线段树+扫描线
这一块没有复习,先扔这日后完善。线段树学习为什么开4*N空间?线段树开4*N空间证明关于线段树开4倍空间的探讨有效节点数量最多有2N,那么build操作时间最多为2N。但是因为最后一层,使得总最大节点编号可以达到4N。为什么查询操作时间为 O(4∗log2n)O(4*log_2{n})O(4∗log2n) ?从第二层开始,每个区间(最多有两个)都会被分为两块,其中一块继续向下递归,另一块return。 因为有 log2nlog_2{n}log2n原创 2021-10-07 19:36:39 · 199 阅读 · 0 评论 -
【计几】曼哈顿距离与切比雪夫距离题集
文章目录[P3964 [TJOI2013]松鼠聚会](https://www.luogu.com.cn/problem/P3964)[AT3557 Four Coloring](https://www.luogu.com.cn/problem/AT3557)[【多维曼哈顿最远点对】poj 2926 Requirements](http://poj.org/problem?id=2926)【多维曼哈顿最近点对】2019牛客第八场多校 D_Distance 三维BITP3964 [TJOI2013]松鼠聚会原创 2021-10-07 19:21:59 · 664 阅读 · 0 评论 -
【计几】曼哈顿距离与切比雪夫距离
讲解链接: 距离 OI Wiki曼哈顿距离与切比雪夫距离:为何要相互转化我们设 dM(A,B)d_M(A,B)dM(A,B) 为点 AAA 和点 BBB 的曼哈顿距离, dQ(A,B)d_Q(A,B)dQ(A,B) 为点 AAA 和点 BBB 的切比雪夫距离。那么我们有两点 A(x1,y1),B(x2,y2)A(x_1,y_1),B(x_2,y_2)A(x1,y1),B(x2,y2)时,两点在映射前后的 MMM 距离和 QQQ 距离是相等的。碰到求切比雪夫距离或曼哈顿距离的原创 2021-10-07 18:04:17 · 304 阅读 · 0 评论 -
【计几】反演变换题集
文章目录[HDU-6097 Mindis【圆内两点经过圆上某点的最短距离】](http://acm.hdu.edu.cn/showproblem.php?pid=6097)[「ICPC 2013 杭州赛区」Problem of Apollonius](https://acm.dingbacode.com/showproblem.php?pid=4773)HDU-6097 Mindis【圆内两点经过圆上某点的最短距离】题解:多校6 HDU-6097 Mindis 几何数学有一个结论是:两个以一对互反演原创 2021-10-07 17:59:50 · 425 阅读 · 0 评论 -
【计几】杂题
文章目录POJ3304 Segments【从结果出发,反推解的存在情况】[HOJ-Super Shuttle Super Shuttle](https://acm.hunnu.edu.cn/#/problems/11563)[第 45 届 ICPC 昆明 - Mr. Main and Windmills](https://ac.nowcoder.com/acm/contest/14055/J)【从状态变化点(反转点)出发,反推解的转移情况】[2021 icpc 网络赛第二场 Nearest Point](h原创 2021-10-07 17:58:29 · 248 阅读 · 0 评论 -
【计几】反演变换
反演变换反演变换适用于题目中存在多个圆/直线之间的相切关系的情况。利用反演变换的性质,在反演空间求解问题,可以大幅简化计算。具体讲解:- 反演变换-OIwiki从基本的变换到著名的几何问题模板来源:反演变换学习笔记(板子)题目集:圆的反演学习总结关于反演变换的补充:1 . 要注意直线过反演点的特殊情况。2 . 不过反演中心的直线反演之后内外侧会置换。那么直线和一个相切的圆的反演有两种情况:直线过反演中心:反演后直线还是过反演中心直线不过反演中心:如果原本反原创 2021-10-07 17:57:51 · 1192 阅读 · 0 评论 -
【计几】最优三角剖分题集
文章目录[Minimax Triangulation【典中典题目】](https://vjudge.ppsucxtt.cn/problem/UVA-1331)[Zoj 3537 Cake](https://zoj.pintia.cn/problem-sets/91827364500/problems/91827368971)[hdu6603 Azshara's deep sea (计算几何+区间DP)](https://blog.csdn.net/Sarah_Wang0220/article/details原创 2021-10-07 17:56:34 · 273 阅读 · 0 评论 -
【计几】平面最短欧氏距离点对题集
文章目录[SPOJ - Closest Triplet【最小周长三角形】](https://vjudge.ppsucxtt.cn/problem/SPOJ-CLOSEST)[[codeforces] - [School Regional Team Contest, Saratov, 2011]-Minimum Sum【最小向量和】](https://codeforces.com/contest/120/problem/J)[codeforces429D - Tricky Function](https://原创 2021-10-06 17:09:52 · 298 阅读 · 0 评论 -
【计几】欧拉公式题集
文章目录POJ 2284-That Nice Euler Circuit圆(circle)[Codeforces 933C C. A Colourful Prospect](https://codeforces.com/contest/933/problem/C)POJ 2284-That Nice Euler Circuit题意:给你一个可能会自交的多边形,问平面被分成了几份。题解:计算几何 欧拉定理应用思路:我们要求点数和边数,点数可以求交点,然后排序去重。边数的话,对于一条线段,原创 2021-10-06 16:21:23 · 1095 阅读 · 0 评论 -
【计几】三维凸包题集
文章目录[The Worm in the Apple【三维凸包内一点到凸包表面的最短距离】](http://acm.hdu.edu.cn/showproblem.php?pid=4266)[Throw the Stones【询问最大增量】](http://acm.hdu.edu.cn/showproblem.php?pid=4573)The Worm in the Apple【三维凸包内一点到凸包表面的最短距离】题意:求三维凸包内一点到凸包表面的最短距离。思路:最优解一定存在于点到凸包面所在平面的距原创 2021-10-06 16:00:28 · 235 阅读 · 0 评论 -
【计几】半平面交题集
文章目录[Acwing - 2803. 凸多边形【求半平面交面积】【有界】](https://www.acwing.com/problem/content/2805/)[Acwing - 2957. 赛车【无界且没有相向直线】](https://www.acwing.com/problem/content/2960/)[poj 3525 - Most Distant Point from the Sea【半平面交 + 二分】](http://poj.org/problem?id=3525)Acwing原创 2021-10-06 15:49:41 · 132 阅读 · 0 评论 -
【计几】旋转卡壳题集
文章目录[Acwing 2938. 周游世界【平面最远点】](https://www.acwing.com/solution/content/60906/)[Acwing 2142. 最小矩形覆盖【多单调指针】](https://www.acwing.com/problem/content/description/2144/)[HDU 2022(凸包中的最大三角形面积)](https://blog.csdn.net/qq_44135741/article/details/99089948)Acwing原创 2021-10-06 15:48:49 · 116 阅读 · 0 评论 -
【计几】二维凸包题集
文章目录[UVA-11168 Airport](https://vjudge.ppsucxtt.cn/problem/UVA-11168)[The Great Divide](https://vjudge.ppsucxtt.cn/problem/UVA-10256)UVA-11168 Airport题意:找到凸包外一直线使得总距离最短。题解:UVA 11168 Airport(凸包+直线两点式转一般式)有两个问题:怎样通过两个点获得直线一般式呢?怎么优化时间?直线两点式转一般式 y−y原创 2021-10-06 15:47:27 · 85 阅读 · 0 评论 -
【计几】平面欧氏距离最近点对
众所周知,平面欧氏距离最远点对可以用旋转卡壳做,平面欧氏距离最近点对可以用分治做。#平面欧氏距离最近点对算法(时间复杂度(分治):O(n logn)O(n~logn)O(n logn))算法详细思路及时间复杂度证明过程:平面最近点对 - OI Wiki模板来源:平面最近点对 - 神之右大臣【模板题】SPOJ-Closest Point Pair题意:求平面最近点对的编号。模板:#include<iostream>#include<cstd原创 2021-10-06 15:44:29 · 277 阅读 · 0 评论 -
【计几】最优三角剖分
最优三角剖分内容: 我们定义一个多边形的剖分对应的权值函数,那么最优三角剖分就是找权值函数的最小值。思路: 一般做法是区间DP。需要注意的是,如果多边形有可能是凹多边形的话,枚举中间值 kkk 就会存在非法的剖分,要特别判断一下。详细解释:【动态规划】UVa 1331 最大面积最小三角形剖分...原创 2021-10-06 15:44:01 · 167 阅读 · 0 评论 -
【计几】欧拉公式
欧拉公式欧拉定理 百度百科计算几何 欧拉定理应用内容:如果一个联通平面图有 VVV 个顶点、EEE 条边、FFF 个面,那么V−E+F=2V-E+F=2V−E+F=2定理扩充:平面图包括 kkk 个连通分支,VVV 个顶点、EEE 条边、FFF 个面,那么V−E+F=k+1V-E+F=k+1V−E+F=k+1定理推广:多面体是平面图在三维下的拓展,也满足欧拉定理。...原创 2021-10-06 15:41:40 · 251 阅读 · 0 评论 -
【计几】Pick定理
链接:Pick定理 OI-WikiPick 定理:给定顶点均为整点的简单多边形,皮克定理说明了其面积 AAA 和内部格点数目 iii 、边上格点数目 bbb 的关系:A=i+b2−1A = i + \frac b 2-1A=i+2b−1.边上格点数目可以用gcd求,详见OI-Wiki。知道了边上格点数目,内部格点数目也可通过公式得到。...原创 2021-10-05 17:44:31 · 131 阅读 · 0 评论 -
【计几】圆的一些定理
文章目录笛卡尔定理圆冥定理极点 & 极线笛卡尔定理链接:笛卡尔定理-百度百科- 定律定义:若平面上四个半径为r1、r2、r3、r4的圆两两相切于不同点,则其半径满足以下结论:(1)若四圆两两外切,则 (∑i=141ri)2=2∑i=141ri2(\sum_{i=1}^4{\frac{1}{r_i}})^2=2\sum_{i=1}^4{\frac{1}{r_i^2}}(i=1∑4ri1)2=2i=1∑4ri21(2)若半径为r1、r2、r3的圆内切于半径为r4的圆中,则原创 2021-10-05 17:28:47 · 663 阅读 · 0 评论 -
【计几】自适应辛普森积分
自适应辛普森积分使用条件: 当要求一条曲线的积分时,如果曲线的次数小于等于二次时,可以用自适应辛普森积分求得积分。代码:#include<stdio.h>#include<algorithm>#include<iostream>#include<vector>#include<cmath>using namespace std;typedef long long LL;const double eps = 1e-12;do原创 2021-10-05 17:07:25 · 229 阅读 · 0 评论 -
【计几】简单三角剖分
简单三角剖分没什么可说的,经典应用就是求多边形面积,多边形质心,多边形与圆的交集面积。另外还有最优三角剖分。原创 2021-10-05 16:58:56 · 74 阅读 · 0 评论 -
【计几】旋转卡壳
旋转卡壳算法(时间复杂度:一般是O(n)O(n)O(n))思想: 对于给定的关于凸包的权值函数,其极值有时是在某对踵点上,此时就可以单调旋转卡壳,求出所有对踵点,找到函数最值。文章:AcWing 2938. 周游世界 题解代码核心结构:LL rotate_calipers(){ if(tp <= 2) return get_dis(P[sta[0]], P[sta[tp-1]]); LL res=0; for(int i=0, j=2; i<tp; i++)原创 2021-10-05 16:53:25 · 300 阅读 · 0 评论 -
【计几】三维凸包
三维凸包算法(增量法)(时间复杂度:O(n2n^2n2))文章: 三维凸包模板(增量法)The Worm in the Apple增量法(三维凸包)代码详细解释较模板化,直接上代码(求三维凸包及其表面积):#include<iostream>#include<cstdio>#include<cmath>#include<algorithm>using namespace std;typedef long long LL;const i原创 2021-10-05 16:35:21 · 882 阅读 · 0 评论 -
【计几】最小圆覆盖
最小圆覆盖算法(时间复杂度:期望O(n))核心代码:point P[N];double r;point o;void get_cir(point a, point b, point c){ double a11 = 2 * (a.x - b.x), a12 = 2 * (a.y - b.y); double a21 = 2 * (a.x - c.x), a22 = 2 * (a.y - c.y); double b1 = a.x * a.x + a.y * a.y -原创 2021-10-05 16:23:53 · 62 阅读 · 0 评论 -
【计几】半平面交
半平面交算法核心代码:struct line{ point p, v; bool operator < (const line a) const{ double A = angle(v), B = angle(a.v); if(dcmp(A, B)) return dcmp(A, B) < 0; // 按极角从小到大排序 return cross(a.v, p - a.p) > 0; // 极角相同,左侧优先原创 2021-10-05 16:09:43 · 86 阅读 · 0 评论 -
【计几】二维凸包
andrew算法求凸包模板://判断大小注意精度,容易被卡struct point{ double x,y; bool operator < (point a){ if(dcmp(x, a.x)) return dcmp(x, a.x) < 0; return dcmp(y, a.y) < 0; } bool operator == (point a) { return !dcmp(x, a.x) &&原创 2021-10-05 15:53:00 · 80 阅读 · 0 评论 -
【计几】三维计算几何基础
点(Point)struct point{ double x, y, z;};double volume(point a, point b, point c, point d) { return dot(cross(b - a, c - a), d - a); } // 返回混合积[b-a c-a d-a],等价于(a->b->c)->d三棱锥的有向体积其他函数也都要改成三维的,因为忘记加第三维出过bug。平面(Plane)struct plane{原创 2021-10-05 15:41:32 · 366 阅读 · 0 评论 -
【计几】二维计算几何基础
点和直线//基本定义const double pi = acos(-1);const double eps = 1e-8;int dcmp(double x, double y){ if(fabs(x - y) < eps) return 0; if(x < y) return -1; return 1;}int sign(double x){ if(fabs(x) < eps) return 0; if(x < 0) retur原创 2021-10-04 20:58:21 · 322 阅读 · 0 评论 -
【目录】计算几何
Acwing 算法进阶课1.1 二维计算几何基础1.2 二维凸包1.3 半平面交1.4 最小圆覆盖1.5 三维计算几何基础1.6 三维凸包1.7 旋转卡壳1.8 三角剖分1.9 扫描线1.10 自适应辛普森积分OI-Wiki2.1 距离2.2 Pick 定理2.3 欧拉公式2.4 最优三角剖分2.5 平面最近点对2.6 反演变换杂知识点3.1 圆的一些定理...原创 2021-10-04 19:39:47 · 123 阅读 · 0 评论