继续上一次的旋转卡壳的问题,这次是求两个凸包的最短距离,
其实选择卡壳就是只要找到"当前向量面积不小于下一个向量面积"即可,
满足这个条件,当前的两个ymin和ymax点就是一对对踵点了。
代码如下,欢迎参考:
#include
#include
#include
using namespace std;
typedef struct{float x,y;} Dot;
Dot operat...
分类:
其他好文 时间:
2014-09-04 20:57:40
阅读次数:
397
给出一个点集,求顶点在点集中的最大的三角形面积。
我们知道这三角形的三个点肯定在凸包上,我们求出凸包之后不能枚举,因为题目n比较大,枚举的话要O(n^3)的数量级,所以采用旋转卡壳的做法:
首先枚举三角形的第一个顶点i, 初始化第二个顶点j=i+1和第三个顶点k=j+1,对k进行循环,直到找到第一个k使得cross(i,j,k)>cross(i,j,k+1),如果k==i进入下一次循环...
分类:
其他好文 时间:
2014-08-20 09:20:56
阅读次数:
208
给出一些正方形,让你求这些正方形顶点之间的最大距离的平方。
//返回点集直径的平方
int diameter2(vector & points) {
vector p = ConvexHull(points);
int n = p.size();
if(n==1) return 0;
if(n==2) return Dist2(p[0], p[1]...
分类:
其他好文 时间:
2014-08-20 02:42:15
阅读次数:
165
水平序 Graham 扫描算法:计算二维凸包的时候可以用到,Graham 扫描算法有水平序和极角序两种。极角序算法能一次确定整个凸包,但是计算极角需要用到三角函数,速度较慢,精度较差,特殊情况较多。水平序算法需要扫描两次,但排序简单,讨论简单,不易出错。【算法流程】
分类:
其他好文 时间:
2014-08-18 10:42:53
阅读次数:
197
多看论文开眼界!转自:http://blog.csdn.net/acmaker/article/details/3188177一、目录一些历史:1978年, M.I. Shamos's Ph.D. 的论文"Computational Geometry"标志着计算机科学的这一领域的诞生。 当时他发表成...
分类:
其他好文 时间:
2014-08-17 19:47:02
阅读次数:
368
链接:http://poj.org/problem?id=2079TriangleTime Limit:3000MSMemory Limit:30000KTotal Submissions:8173Accepted:2423DescriptionGiven n distinct points on ...
分类:
其他好文 时间:
2014-08-16 17:07:40
阅读次数:
284
/*这是用的有旋转卡壳的思想。首先确定i,j,对k进行循环,知道找到第一个k使得cross(i,j,k)>cross(i,j,k+1),如果k==i进入下一次循环。对j,k进行旋转,每次循环之前更新最大值,然后固定一个j,同样找到一个k使得cross(i,j,k)>cross(i,j,k+1)。对j...
分类:
其他好文 时间:
2014-08-05 03:00:58
阅读次数:
226
呃,不知道我用的算不算卡壳,总有点枚举的意思。先求凸包,然后,枚举其中一点,再枚举另一点作为结尾,这个向量旋转一周后,求出最大值面积。这里面用的是旋转卡壳判断的那个式子。#include #include #include #include using namespace std;struct po...
分类:
其他好文 时间:
2014-08-05 00:04:48
阅读次数:
261
旋 转卡壳水题。直接使用旋转卡壳求距离。#include #include #include #include #include using namespace std;const int MAXN=50100;struct point { int x,y;}p[MAXN];int n;int st...
分类:
其他好文 时间:
2014-08-03 17:36:05
阅读次数:
227
凸包直径旋转卡壳凸包直径详解//计算凸包直径,输入凸包ch,顶点个数为n,按逆时针排列,输出直径的平方int rotating_calipers(int n){ int q = 1; int ans = 0; ch[n] = ch[0]; for(int i = 0 ; i ...
分类:
其他好文 时间:
2014-07-29 11:17:17
阅读次数:
351