随笔分类 - 计算几何
摘要:同上面几道题差不多,需要先求出来内核,然后直接用叉积求出来面积即可。代码如下:#include#include#include#include#include#includeusing namespace std;const int MAXN = 1507;const int oo = 1e9+7;...
阅读全文
摘要:题目大意:询问是否在家里装一个监视器就可以监控所有的角落。分析:赤裸裸的判断多边形内核题目。代码如下:#include#include#include#include#include#includeusing namespace std;const int MAXN = 107;const int ...
阅读全文
摘要:题目大意:判断多多边形是否存在内核。代码如下:#include#include#include#include#include#includeusing namespace std;const int MAXN = 107;const int oo = 1e9+7;const double EPS ...
阅读全文
摘要:题目大意:RT分析:所谓内核可以理解为在多边形内存在点可以在这个点上看到多边形内部所有的部分,当然怎么求出来就是问题的关键了。我们知道多边形的每条边都是边界值,边的左边和右边肯定是一部分属于多边形一部分属于多边形外,如果这个多边形是顺时针的话那么右边就属于里面,左边就属于外边,如果这条变的外边那么一...
阅读全文
摘要:Pick公式:平面上以格子点为顶点的简单多边形的面积=边上的点数/2+内部的点数+1。代码如下:------------------------------------------------------------------------------------------------------...
阅读全文
摘要:题目大意:以原点为起点然后每次增加一个x,y的值,求出来最后在多边形边上的点有多少个,内部的点有多少个,多边形的面积是多少。分析:1、以格子点为顶点的线段,覆盖的点的个数为GCD(dx,dy),其中,dxdy分别为线段横向占的点数和纵向占的点数。如果dx或dy为0,则覆盖的点数为dy或dx。2、Pi...
阅读全文
摘要:题目大意:从原点开始,1-4分别代表,向右下走,向右走,向右上走,向下走,5代表回到原点,6-9代表,向上走,向左下走,向左走,向左上走。求出最后的多边形面积。分析:这个多边形面积很明显是不规则的,可以使用向量积直接求出来面积即可。代码如下:-----------------------------...
阅读全文
摘要:题目大意:利用n棵树当木桩修建牛圈,知道每头牛需要50平的生存空间,求最多能放养多少头牛。分析:赤裸裸的求凸包然后计算凸包的面积。代码如下:--------------------------------------------------------------------------------...
阅读全文
摘要:刚开始看这个题目不知道是什么东东,后面看了大神的题解才知道是稳定凸包问题,什么是稳定凸包呢?所谓稳定就是判断能不能在原有凸包上加点,得到一个更大的凸包,并且这个凸包包含原有凸包上的所有点。知道了这个东西就简单了,直接求出来凸包后,然后判断每条边上的点是否超过三点就行了。代码如下:==========...
阅读全文
摘要:题目大意:有个国王他有一片森林,现在他想从这个森林里面砍伐一些树木做成篱笆把剩下的树木围起来,已知每个树都有不同的价值还有高度,求出来砍掉那些树可以做成篱笆把剩余的树都围起来,要使砍伐的树木的价值最小,如果有价值相同的尽量使砍伐的树木少一些。分析:因为树木的数量是比较少的,所以枚举所有的状态,判断那...
阅读全文
摘要:给一些点,这些点都是一个凸包上的顶点,以第一个点为起点顺时针把别的点拍排一下序列。分析:最简单的极坐标排序了.....................代码如下:----------------------------------------------------------------------...
阅读全文
摘要:题目大意:给N个点,然后要修建一个围墙把所有的点都包裹起来,但是要求围墙距离所有的点的最小距离是L,求出来围墙的长度。分析:如果没有最小距离这个条件那么很容易看出来是一个凸包,然后在加上一个最小距离L,那么就是在凸包外延伸长度为L,如下图,很明显可以看出来多出来的长度就是半径为L的圆的周长,所以总长...
阅读全文
摘要:题目大意:已知一个多边形上的每条边的中点,还原出来一个多边形。分析:因为偶数是不固定的,所以可以为任意起点,奇数只有一个,可以所有中点加减算出来第一个点,然后就是简单的向量计算点的位置了......===================================================...
阅读全文
摘要:题目大意:给一个凸多边形(点不是按顺序给的),然后计算给出的线段在这个凸多边形里面的长度,如果在边界不计算。分析:WA2..WA3...WA4..WA11...WA的无话可说,总之细节一定考虑清楚,重合的时候一定是0代码如下:=====================================...
阅读全文
摘要:题目大意:有N个点,如果可以使用这N个点连接,连接的时候任意两条边要成直角,任意边都要平行于x轴或者y轴,并且不能出现跨立相交,最终组成一个闭合的多边形,求出来这个多边形的最小长度。分析:容易证明这个多边形的存在是唯一的,因为每个点出发都会产生两条边,横着的或者竖着的,而且,相同x或者相同y的点所在...
阅读全文
摘要:题目大意:RT分析:构造一条射线,如果穿越偶数条边,那么就在多边形外面,如果穿越奇数条边,那么就在多边形里面。代码如下:==========================================================================================...
阅读全文
摘要:题目大意:有一个正N边形,然后给出两个点,求出剩余的点的坐标。分析:向量旋转可以求出坐标,顺时针旋转时候,x = x'*cos(a) + y'*sin(a), y=-x'*sin(a) + y'*cos(a), 逆时针时候 x = x'*cos(a)-y'*sin(a), y=x'*sin(a)+y...
阅读全文
摘要:题目大意:首先给一个圆的半径和圆心,然后给一个多边形的所有点(多边形按照顺时针或者逆时针给的),求,这个多边形是否是凸多边形,如果是凸多边形在判断这个圆是否在这个凸多边形内。分析:判断凸多边形可以使用相邻的三个点叉积判断,因为不知道顺时针还是逆时针,所以叉积如果有有整数和负数,那么一定不是凸多边形(...
阅读全文
摘要:题目大意:给一些几何图形的编号,求出来这些图形都和那些相交。分析:输入的正方形对角线上的两个点,所以需要求出来另外两个点,公式是:x2:=(x1+x3+y3-y1)/2; y2:=(y1+y3+x1-x3)/2;x4:=(x1+x3-y3+y1)/2; y4:=(y1+y3-x1+x3)/2;这个是...
阅读全文
摘要:题目大意:有一个不反光并且不透光的管道,现在有一束光线从最左端进入,问能达到的最右端是多少,输出x坐标。分析:刚开始做是直接枚举两个点然后和管道进行相交查询,不过这样做需要考虑的太多,细节不容易掌控。后来发现其实只需要对接口进行一下相交查询就简单多了,因为只需要考虑能不能通过每个截口就可以了,而且这...
阅读全文

浙公网安备 33010602011771号