XXIX.CF1195F Geometers Anonymous Club 闵可夫斯基和是关于两个凸包的运算,其几何意义是所有来自两个凸包内部的向量之和所构成的集合。 可以被证明的是,两个凸包的闵可夫斯基和,可以通过对两个凸包上的边按照极角大小排序后依次首尾相接得到。 回到本题。依照我们上述理论,我 ...
分类:
其他好文 时间:
2021-04-07 10:59:01
阅读次数:
0
极角是极坐标系中的角度 我们对这个角度进行点的排序 利用类的概念设置结构体 #include <bits/stdc++.h> using namespace std; typedef long long LL; const int N = 101001; const LL INF = 0x3f3f3 ...
分类:
编程语言 时间:
2020-05-27 15:45:16
阅读次数:
64
做的我要吐了。。留着吧以后再看看 /* 两两枚举起始的点,然后按题意模拟寻找下去,为了加速,预处理nxt[i][j]表示直线p[i]->p[j]旋转时,下一个碰到点的下标 */ #include <iostream> #include <algorithm> #include <vector> #i ...
分类:
编程语言 时间:
2020-05-07 18:08:40
阅读次数:
69
这题还是按角度进行极角排序简单点 /* 按亮度从大到小排序,从大的给小的连一条向量,极角排序后所有向量在两个象限内,那么可行,反之不可行 */ #include<bits/stdc++.h> using namespace std; #define N 1005 typedef double db; ...
分类:
编程语言 时间:
2020-04-09 22:55:58
阅读次数:
131
#include<bits/stdc++.h> using namespace std; typedef double db; const db eps=1e-6; const db pi=acos(-1); int n; struct Node{ int id;db h; Node(){} Nod ...
分类:
编程语言 时间:
2020-03-17 08:29:54
阅读次数:
74
多边形的表示 + 顶点表示。只要得到顶点再连线即可。如果是凸多边形由点集极角排序即可,其他情况不太了解 + 点阵表示。需要判断哪些属于内部点 本文主要讨论点阵表示 其实主要是PPT的copy,但是复制一遍确实印象深刻一点?? 1.逐点判断法 即一个个点判断是不是属于图形内部,主要方法是射线法。 从待 ...
分类:
编程语言 时间:
2020-03-09 17:37:57
阅读次数:
90
碰到极角排序不能无脑就用双指针写,要思考是否有更加好的写法 本题由于有三点共线,所以双指针扫描会有问题,由于只要求直角个数,所以我们可以直接用lower_bound二分去找这个就可以 或者也可以用map重载point的=,<,>运算 #include<bits/stdc++.h> using nam ...
分类:
编程语言 时间:
2020-02-21 22:10:58
阅读次数:
89
"Link" 注意到合法的一对三角形一定存在一对内公切线。 那么我们得到了一个$O(n^3)$的做法:枚举一条公切线的两个端点,计算公切线左侧和右侧的点数并统计答案。 考虑优化,先固定公切线的一端,然后把另一端按照该公切线的极角排序,那么利用前缀和就可以做到$O(n^2\log n)$了。 ...
分类:
其他好文 时间:
2020-02-21 17:47:15
阅读次数:
87
这个版本还不能处理三点共线的情况(处理起来其实比较麻烦) 可以用atan2来排序(较为简单,但是精度误差大),也可以用叉积排序(比较优秀) atan2 #include <iostream> #include <cstdio> #include <cstring> #include <algorit ...
分类:
编程语言 时间:
2020-02-19 23:43:34
阅读次数:
81
霍夫线变换的原理 一条直线在图像二维空间可由两个变量表示,有以下两种情况: ① 在笛卡尔坐标系中:可由参数斜率和截距(k,b)表示。 ② 在极坐标系中:可由参数极经和极角(r,θ)表示。 对于霍夫线变换,我们将采用第二种方式极坐标系来表示直线,因此直线的表达式可为: 化简便可得到: 对于(x0,y0 ...
分类:
其他好文 时间:
2020-02-19 16:46:47
阅读次数:
86