![](https://img-blog.csdnimg.cn/20201014180756754.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
凸包
ramay7
Life is not short,but float.
展开
-
POJ 1873 The Fortified Forest(凸包+DFS枚举)
题目链接: POJ 1873 The Fortified Forest 题意: 有n棵树,知道了每棵树的坐标和高度以及价值,需要砍掉一些树能用这些树的长度对没砍掉的树做成一个围栏, 要保证剩下的树的价值最大,问需要砍掉哪些树,以及围成围栏后剩下的树长度是多少? n范围2<=n<=15. 分析: 砍完后剩下的树需要的最小围栏长度,就是这些树所形成的凸包的周长。 因为n只有15所以可以d原创 2016-04-19 01:18:27 · 392 阅读 · 0 评论 -
HDU 3263 Ancient vending machine(多边形内直径和最小宽度)
题目链接: HDU 3263 Ancient vending machine 题意: 给出一个多边形孔和一个多边形硬币,问你这个硬币能能否从孔中穿过去? 分析: 对于多边形孔是求最大内直径H,多边形硬币是求在某个方向上的最小宽度L。 先来看L.先对多边形硬币求个凸包,枚举这个凸包的每一条边,求出所有顶点距离这条边的距离的最大值,这就是这条边的多对应的高度,在所有边的高度中取最小值就是最小原创 2016-05-15 22:34:16 · 883 阅读 · 1 评论 -
LightOJ 1203 Guarding Bananas(凸包、直线夹角)
题目链接: LightOJ 1203 Guarding Bananas 题意: 给出n个点,找到一个点使从这个点看其他所有点所形成的最大夹角最小(视野内能看完其他所有点)。 分析: 先求个凸包,因为这样的点肯定是凸包上的点。然后枚举凸包顶点,凸包顶点和相邻边的另外两个端点所形成的角 肯定能覆盖所有凸包顶点,这样子一来就是转化为求两点对一点所形成的夹角,枚举取最小即可。#include <原创 2016-05-22 22:54:28 · 471 阅读 · 0 评论 -
POJ 1584 A Round Peg in a Ground Hole(判断是否是凸包以及圆是否完全在凸包内)
题目链接: POJ 1584 A Round Peg in a Ground Hole 题意: 顺时针或者逆时针给出n个顶点以及一个圆的圆心和半径,首先判断这n个顶点能够构成一凸包,允许一条边上多个顶点, 其次判断这个圆是否都在凸包内。 分析: 判断是否是凸包,只需按照顶点顺序,相邻向量叉积值是否符号一致。 判断圆是否在凸包内,首先需要判断圆心是否在凸包内。 圆心在凸包内满足任意相邻原创 2016-04-20 00:13:25 · 447 阅读 · 0 评论 -
HDU 2202 最大三角形(求凸包中最大三角形面积)
题目链接: HDU 2202 最大三角形 题意: 给出n个点,求最大三角形面积。 分析: 先求出凸包顶点,因为最大三角形的顶点一定都是凸包顶点。 接下来就暴力枚举所有凸包顶点(复杂度是凸包顶点数^3)。 有旋转卡壳的算法,然而并不会啊。。。。。。 弱菜的自述: 起初是把最大三角形的一条边当成必须是凸包的一条边,所以WA的很彻底啊! 实际上只是顶点必须是凸包顶点,而边并不一定!//原创 2016-04-20 00:11:29 · 2051 阅读 · 0 评论 -
HDU 1392 Surround the Trees(求凸包周长)
题目链接: HDU 1392 Surround the Trees 题意: 求凸包周长。 分析: 需要注意只有一个点时答案是0,只有两个点时答案是两点间距离。#include <iostream>#include <cstdio>#include <cstring>#include <algorithm>#include <climits>#include <cmath>usi原创 2016-04-20 00:09:41 · 564 阅读 · 0 评论 -
POJ 3348 Cows(求凸包面积)
题目链接: POJ 3348 Cows 题意: 有n棵树,将这些树围成一个多边形牧场,求这个牧场最多能放多少头牛?每头牛需要50平方米的面积。 分析: 多边形牧场,即是这n棵树所围成的凸包。也就是要求凸包的面积。 将凸包看成一个个以凸包最左下顶点为顶点的凸包边为对边的三角形。 那么依次扫个条边,计算三角形面积累加即可。 已知三角形三条边计算三角形面积,可用海伦–秦九韶公式#inclu原创 2016-04-20 00:08:06 · 364 阅读 · 0 评论 -
POJ 1228 Grandpa's Estate(确定凸包)
题目链接: POJ 1228 Grandpa’s Estate 题意: 给出n个点,问由这n个点能不能位唯一确定一个凸包? 分析: 看到有网友将这称为稳定凸包。 其实就是确定这n个点所形成的凸包每条边上是不是至少有三个点。 当顶点数小于6的时候肯定是不能构成凸包的,这个特判下就好了。#include <iostream>#include <cstdio>#include <cstr原创 2016-04-20 00:06:29 · 429 阅读 · 0 评论 -
POJ 2007 Scrambled Polygon(极角排序)
题目链接: POJ 2007 Scrambled Polygon//向量a叉乘向量b小于0,说明向量b在向量a的右侧。//极角排序#include <iostream>#include <cstdio>#include <cstring>#include <algorithm>#include <climits>#include <cmath>using namespace std原创 2016-04-19 01:15:10 · 417 阅读 · 0 评论 -
POJ 1113 Wall(求凸包周长)
题目链接: POJ 1113 Walla//228K 0MS#include <iostream>#include <cstdio>#include <cstring>#include <algorithm>#include <climits>#include <cmath>using namespace std;const double PI=acos(-1.0);const原创 2016-04-19 01:10:36 · 411 阅读 · 0 评论 -
UVALive 4617 Simple Polygon(顺/逆时针输出所有点/极角排序)
题目链接: UVALive 4617 Simple Polygon 题意: 将平面所有点都用上,构成一个多边形,顺时针(或逆时针)输出点的顺序。 分析: 多边形有可能是凸的也有可能是凹的。 先找到最左下角的点(x值优先),然后对其余点以最左下角为基点极角排序。除去最左侧的一系列和point[0]共线的点,其余的点的顺序即是逆时针的点的顺序。#include <cstdio>#inclu原创 2016-04-23 01:06:33 · 602 阅读 · 0 评论