随笔分类 -  凸包

摘要:我们随机选取点1,2作为凸包的一个分割线,那么我们可以直接枚举剩下n-2个点找到他们和向量1-2的叉积大小与正负,然后我们可以根据叉积的正负,先将他们分割出两个区域,在向量1-2的下方还是上方,接下来找到距离向量1-2最高的点id1和最低点id2,接下来在通过向量id1-1再次分割再上方的点,同样最 阅读全文
posted @ 2019-11-23 17:03 DD_BOND 阅读(388) 评论(0) 推荐(0)
摘要:题目大意是让你用这n条边放在网格上构成凸包,并且边的两端点必须在网格上。 那么比较容易想到的就是枚举可能情况,因为这样的勾股数组成情况不多,因此可以直接枚举所有连出去的边反映在坐标轴上的所有情况,最后判断是否回到起点并且绕城一个凸包。 但是样例三每条边有最多36个方向,那么366*6!显然会超时,我 阅读全文
posted @ 2019-10-14 17:27 DD_BOND 阅读(221) 评论(0) 推荐(0)
摘要:题意是逆时针方向给你两个多边形,问你这两个多边形通过旋转和平移能否拼成一个凸包。 首先可以想到的便是枚举边,肯定是有一对长度相同的边贴合,那么我们就可以n2枚举所有边对,接下来就是旋转点对,那么假设多边型在这条向量的左侧,那么我们可以根据叉积正负判断旋转的方向。 然后就是如何判断了,显然有一种情况是 阅读全文
posted @ 2019-10-11 23:28 DD_BOND 阅读(334) 评论(0) 推荐(0)
摘要:首先肯定是构造一个完整的凸包包括所有的点,那么要使得刚好有两个点在外面,满足这个条件的只有三种情况。 1.两个在凸包上但是不连续的两个点。 2.两个在凸包上但是连续的两个点。 3.一个在凸包上,还有一个在这个点去掉后这段新凸包边上的一个点。 如何快速的截取新凸包的点是谁呢,我们可以将整个凸包划分区域 阅读全文
posted @ 2019-10-04 15:18 DD_BOND 阅读(330) 评论(0) 推荐(0)
摘要:首先可以证明,点积最值的点对都是都是在凸包上,套用题解的证明:假设里两个点都不在凸包上, 考虑把一个点换成凸包上的点(不动的那个点), 不管你是要点积最大还是最小, 你都可以把那个不动的点跟原点拉一条直线, 然后把所有的点投影到这条直线上, 要找的无非就是这条直线最前面或者最后面的两个点.这两个点不 阅读全文
posted @ 2019-08-13 16:41 DD_BOND 阅读(569) 评论(0) 推荐(1)
摘要:首先对于这m个点维护出一个凸包M,那么问题就变成了判断凸包P进行放大缩小能不能包含凸包M。(凸包P可以进行中心对称变换再进行放大缩小,见题意) 如何判断合适的相似比呢,我们可以用二分去放大缩小凸包P的坐标,得到最小的相似比。 接下来就是如何判断是否包含。我们需要对凸包P上的每一条向量,在凸包M上找到 阅读全文
posted @ 2019-08-06 12:51 DD_BOND 阅读(393) 评论(0) 推荐(0)
摘要:由于题目要求,首先维护出一个凸包,然后在凸包上寻找点对关系,用rel[i][j]表示i点和j点之间是否可以连线,又由于维护出来的凸包上的点的个数不多,可以直接枚举点对并枚举所有圆,判断两点直线和圆是否相离,由于维护出来的凸包已经按照逆时针排序,又要满足两两线段不相交,最后就变成了求最大不相交线段个数 阅读全文
posted @ 2019-07-29 20:40 DD_BOND 阅读(405) 评论(0) 推荐(0)