传送门 旋转卡壳。 首先求凸包没什么好商量的。 然后有一个结论,如果存在一个最小的矩形覆盖,那么凸包里必定存在一条边和矩形的边重合。 自己yy一下就好啦,很容易想明白。 然后枚举每条边,移动另外三条边即可。 注意点积,叉积的结合运用什么的。 ...
分类:
其他好文 时间:
2017-01-29 19:12:58
阅读次数:
343
题意:n个平行于坐标轴的正方形,求出最远点对的平方 题解:首先求出凸包,可以证明最远点对一定是凸包上的点对,接着可以证明最远点对(每个点的对踵点)一定只有3*n/2对 接着使用旋转卡壳找到最远点对,但是白书上的算法过于麻烦 所以我看到一个简单想法就是: 可以直接枚举每个点,接着枚举这个点对应最远的点 ...
分类:
其他好文 时间:
2016-12-29 22:48:38
阅读次数:
169
Description 【分析】 打计算几何真的可以哭出来。。。 跟那个求线段最远点差不多,这题弄三个东西转一转,一个表示左端最远点,一个表示右端最远点,一个表示上面最远点。 左右两边的最远点用点积判断,上方最远点用差积判断。 【向量是最好的解决平面几何问题的,不要画图!!!哭!!! 输出那里,用的 ...
分类:
其他好文 时间:
2016-12-15 17:51:45
阅读次数:
236
题目简述 输入n个点,及其坐标,n<=50000,所有坐标都是不超过10000的整数组成,没有重点。 问最远点对间的距离的平方是多少 题解 这是一道旋转卡壳的裸题 我们要求这个多边形的直径,这可怎么办呢 首先,最远点对一定在凸包上,我们考虑这样一个凸包 显然的,卡在两个点上,一定可以转化成卡在一个边 ...
分类:
其他好文 时间:
2016-11-22 02:39:31
阅读次数:
167
http://poj.org/problem?id=3608 (题目链接) 题意:求两凸包间最短距离 Solution 难写难调,旋转卡壳,还真是卡死我了。 先分别选出两凸包最上点和最下点,从这两点开始向逆时针方向旋转卡壳。用叉乘判断是否旋转旋转,具体操作跟求凸包直径差不多。 poj discuss ...
分类:
其他好文 时间:
2016-09-27 23:14:21
阅读次数:
196
http://poj.org/problem?id=3384 题意:给一个凸包,求往里面放两个圆(可重叠)的最大面积时的两个圆心坐标。 思路:先把凸包边往内推R,做半平面交,然后做旋转卡壳,此时得到最大距离的点对,就是圆心坐标。 PS:最大长度的初始值要设置为负数,因为距离有可能退化到0,就像这组数 ...
分类:
其他好文 时间:
2016-07-10 13:57:46
阅读次数:
153
Description 顺序枚举凸包上的边确定矩形一边,旋转卡壳确定在矩形另外三边上的点 #include<cstdio> #include<cmath> #include<algorithm> typedef long double ld; const ld _0=1e-7; struct vec ...
分类:
其他好文 时间:
2016-06-28 09:29:35
阅读次数:
208
先求出凸包,旋转卡壳,可以枚举对角线,再分别找对角线两边最远的点。。。 ...
分类:
其他好文 时间:
2016-06-23 21:59:07
阅读次数:
197
凸包,(旋转卡壳)。 首先要求的4个点肯定在凸包上,所以先求一个凸包。 然后枚举第一个点,和它的对角线。然后另外俩个点分别与它们构成一个三角形 根据凸多边形的性质,三角形的移动方向是单调的,所以这样枚举的复杂度为O(n^2)。 #include #include #include #include ... ...
分类:
其他好文 时间:
2016-06-15 14:26:58
阅读次数:
193