凸包+旋转卡壳
KJBU2
只求看懂题意
展开
-
POJ 1392(凸包的周长)
求凸包的长度,先求出凸包的外围的点(求法上篇说过)。 然后求每每两个点的之间的距离就可以了。 如果求凸包的面积就可以使用。 公式是: s1=x1*y2-y1*x2; S=s1+s2+...s(n-1)+s(n)(共有n个点) s/=2; #include #include #include using namespace std; const int maxn原创 2015-07-18 11:17:57 · 798 阅读 · 0 评论 -
HDU 2202(凸包内最大三角形面积)
先将凸包点求出来之后。 利用旋转卡壳的方法,然后找不同两点为边,在找其对踵点。三点求面积 取最大值就可以了。 #include #include #include using namespace std; const int maxn=50001; struct node { double x,y; } st[maxn],num[maxn]; int n,k,e; doubl原创 2015-07-18 11:30:04 · 1835 阅读 · 0 评论 -
凸包初学(POJ1113)
第一道凸包的题目。/* 凸包:对一个简单多边形来说,如果给定其边界上或者内部上的两个点,连接着两个点 连接这两个点的线段上的所有点都被包含在该多边形的边界上或内部的话,则该多边形为凸多边形 。 给你一些点,用这些点连出凸多边形,要求所有点都在所连成的凸多边形边界或内部。 选择一个左下角的左边点 当做起始点。 连结P0与其他点,分别计算这些线段与“竖直向下方向”的夹角, 按照夹角由小到达的顺序将原创 2015-07-18 11:06:20 · 745 阅读 · 0 评论 -
POJ 2187(求凸包内两点之间最长距离)
推荐博客 :借鉴 /* 分别列举每个凸包的每条边,再列举另一个凸包的点,求得一对对踵点,与当前记录的值相取舍。 遍历到下一条边,从上次便利到的点开始寻找下一对踵点,再取舍......。直至取舍出最长、最短距离。 */ #include #include #include using namespace std; const int maxn=50001; struct node原创 2015-07-18 11:20:35 · 794 阅读 · 0 评论