poj 2187 最远点对
题意:
给出n个点,求最远点对的距离。
限制:
2
思路:
凸包,旋转卡壳
/*poj 2187
题意:
给出n个点,求最远点对的距离。
限制:
2 <= n <= 5*1e4
思路:
凸包,旋转卡壳
*/
#include
#include
#include
#include
#include
using name...
分类:
其他好文 时间:
2015-03-15 14:00:28
阅读次数:
112
WA了好多次
说一下错误
第一个地方是旋转卡壳是要进行两次的
第二个地方其实也不算错误,应该是程序运行的精度问题
在下面这部分程序中
//while((tmp=(p[(miny+1)%n]-p[miny])^(p[maxy]-p[(maxy+1)%m]))<-eps) maxy=(maxy+1)%m;//只要在向量miny-miny+1右侧则说明在向对踵点对的方向靠
wh...
分类:
其他好文 时间:
2015-03-07 17:13:02
阅读次数:
152
题目大意给出平面上的一些点,求这些点能够组成的最大面积三角形。思路虽然数据范围有50W,但是POJ上的数据一向很弱,discuss中居然有人这样说:
手动二分发现极限数据凸包上有2596个点
RT
好水的数据
好吧,留给我们的就剩下O(n2)O(n^2)的时间内解决这个题了。
首先先求出凸包,之后可以枚举这个大三角形的一条边,然后枚举另一个顶点。很显然这个过程是O(n3)O(n^3...
分类:
其他好文 时间:
2015-03-05 14:45:31
阅读次数:
117
开始就是瞄着三分来做的,但看题目,感觉是旋转卡壳吧。。可是,用了旋转卡壳还三分条毛啊。。可以令正方形不旋转,而改为令点绕原点旋转,这样,很好的解决了问题,就可以比较X轴最大长度和Y轴最大长度来确定正方形的边长了。然后三分旋转角度就可以了。#include #include #include #inc...
分类:
其他好文 时间:
2015-02-05 13:13:20
阅读次数:
99
题意:求凸包的直径关于对踵点对、旋转卡壳算法的介绍可以参考这里:http://www.cnblogs.com/Booble/archive/2011/04/03/2004865.htmlhttp://www.cppblog.com/staryjy/archive/2009/11/19/101412....
分类:
其他好文 时间:
2015-02-01 19:07:15
阅读次数:
115
题目大意:给出平面上的一些点,问面积最小的矩形满足覆盖所有的点。
思路:覆盖问题和不是凸包上的点没关系,先做凸包。根据贪心的思想,这个覆盖了所有点的矩形肯定至少有一条边与凸包上的边重合,那么我们枚举凸包上的每一条边,对于这个已经确定了一条边的矩形,不难确定其他三个边。注意到已知当前直线的向量,就可以求出两侧和对面的向量,而这三个向量随着枚举的边的移动是单调的,所以就可以用旋转卡壳来卡住剩...
分类:
其他好文 时间:
2015-01-23 23:11:16
阅读次数:
481
题目大意:最小矩形覆盖
首先有一个结论:凸包上一定有一条边与矩形的一条边重合
证明:如果不存在一条边与矩形的一条边重合,那么我将这个矩形旋转一下一定会比之前更小
于是我们枚举其中一条边,对其余三个点卡壳即可
这旋转卡壳写的真叫一个卡壳- - 还好1A掉了- -
#include
#include
#include
#include
#include
#define M 5050...
分类:
其他好文 时间:
2015-01-23 16:27:38
阅读次数:
184