![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
凸包
文章平均质量分 75
林伏案
妖蛾子良多的范老爷
展开
-
poj3608(旋转卡壳求两凸包间的最短距离)
/*translation: 求两个凸包间的最小距离?solution: 旋转卡壳法。note: * 网上给出的资料都差不多,具体如下: 1. 计算凸包P在y轴方向上的最小值记为yminP,和凸包Q在y轴方向上的最大值记为ymaxQ。 2. 建立两条紧贴着yminP, ymaxQ的两条水平的直线LP, LQ。要求他们指向不同的方向。这时候他们就形成了一对anti-podal pai原创 2017-02-27 22:34:50 · 541 阅读 · 0 评论 -
poj3246(*凸包)
/*translation:给出n个点,求去掉一点后,再求凸包,所能得到凸包最小的面积是多少?solution:很容易想到去掉的点肯定在凸包上面。所以对上面的点一一枚举,然后维护最小答案即可。note:* 想半天只想到去掉的点肯定在凸包上,然后暴力枚举上面的每一个点。但看了下数据范围又否决了自己的方法。 但是万万没想到题解就是按照暴力来写的,这数据明显偏弱了。不然如此暴原创 2017-02-28 20:46:50 · 320 阅读 · 0 评论 -
poj1912(*判断直线是否穿过凸多边形)
/*translation: 给定一些点,再给出若干条直线,对于每一条直线,判断其所有点是否都在同一侧solution: 很容易想到先求凸包,然后再对凸包上面的点做处理。note: * 很明显,只要直线不经过凸包即可。但是怎么快速判断就成了问题。方法是根据凸包上面的点进行二分查找第一个在右侧或者左侧的点。 因为凸包上的点的斜率呈现单调性,故可行。然后对两个点判断是否都在直线同一侧原创 2017-03-01 20:18:53 · 2132 阅读 · 0 评论 -
poj2079(*凸包内最大三角形面积)
/*translation: 给出一组点,从这些点里面选择三个点构成三角形。求这个三角形面积最大是多少?solution: 凸包 很容易想到三角形的三个点肯定在凸包上面,但是关键怎么找出来三个点。一一枚举肯定超时。note: * 如果固定一条边的话,那么枚举剩下的一个点,在枚举过程中面积肯定有达到极大值后又减小。根据这一特性,可以先固定 一点i,然后让另外两点a,b不断旋转来找原创 2017-02-25 16:41:51 · 1431 阅读 · 3 评论 -
poj2187(凸包)
/*translation: 给出n个点的位置,计算出距离最远的一对点的距离。solution: 求凸包然后枚举凸包上的点计算即可。note: * 旋转卡壳法更加高效。*/#include #include #include #include #include #include using namespace std;const int maxn = 50000 +原创 2017-02-26 10:42:18 · 310 阅读 · 0 评论 -
poj1113(凸包)
/*translation: 用一条线把若干个点包起来,并且线距离任何一个点的距离都不小于r。求这条线的最小距离是多少?solution: 直接求凸包,然后凸包的周长加上一个圆的周长即可。*/#include #include #include #include #include #include using namespace std;const int maxn =原创 2017-02-26 10:50:57 · 223 阅读 · 0 评论