摘要:
旋转卡壳可以用于求凸包的直径、宽度,两个不相交凸包间的最大距离和最小距离等。虽然算法的思想不难理解,但是实现起来真的很容易让人“卡壳”。拿凸包直径(也就是凸包上最远的两点的距离)为例,原始的算法是这样子: Compute the polygon's extreme points in theydirection. Call themyminandymax. Construct two horizontal lines of support throughyminandymax. Since this is already an anti-podal pair, compute the 阅读全文
posted @ 2012-08-28 20:20
Szz
阅读(813)
评论(0)
推荐(0)
摘要:
http://poj.org/problem?id=2187题意:最长的点对近距离的平方:题解:旋转卡壳法, 要注意的地方是,有 所有点共线的情况,所以,(求凸包时)要将,共线点去出 ;1#include<cstdio>2#include<cstring>3#include<cmath>4#include<iostream>5#include<algorithm>6#include<set>7#include<map>8#include<queue>9#include<vector>10 阅读全文
posted @ 2012-08-28 17:04
Szz
阅读(269)
评论(0)
推荐(0)
摘要:
http://poj.org/problem?id=1113题意:一个城墙 有n 个点描述, 国王想建一个周长最短的墙,使墙的任意一点到城墙的距离都 > L。求这面墙的周长。题解":最短周长 = 凸包周长 + 半径为 l 的圆的周长。还要注意的是这道题 不能 将共线点去掉1#include<cstdio>2#include<cstring>3#include<cmath>4#include<iostream>5#include<algorithm>6#include<set>7#include<map 阅读全文
posted @ 2012-08-28 14:47
Szz
阅读(185)
评论(0)
推荐(0)
摘要:
http://poj.org/problem?id=1228题意:一块凸包的土地,有若干钉子钉在凸包的边上,现在其中一些钉子掉掉了,判断是否能根据剩下的钉子判断出原来这边凸包的土地,能输出“YES”,不能输出“NO”。题解“首先我们要知道 ,掉了的钉子只能是 边上的点 ,而不能是 拐点,所以我们要,先求其凸包(去除 共线的点),判断每条边上 是否 除了 拐点外 还有 其他的点 ,若没条边除了拐点外都还有其他的点 ,则输出 yes,否则输出 no; 1#include<cstdio>2#include<cstring>3#include<cmath>4#inc 阅读全文
posted @ 2012-08-28 11:43
Szz
阅读(186)
评论(0)
推荐(0)
摘要:
题意:给出若干个点,求出它们的凸包,并且按原点为第一点的逆时针方向输出。输出为:(0,0)(-30,-40) (-30,-50) (-10,-60) (50,-60) (70,-50) (90,-20) (90,10) (80,20) (60,30)1#include<cstdio>2#include<cstring>3#include<cmath>4#include<iostream>5#include<algorithm>6#include<set>7#include<map>8#include<qu 阅读全文
posted @ 2012-08-28 09:42
Szz
阅读(169)
评论(0)
推荐(0)
浙公网安备 33010602011771号