![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Algorithm_计算几何
文章平均质量分 72
niuox
这个作者很懒,什么都没留下…
展开
-
Hoj 1614 Communication Planning for Phobos
本题是求最小生成树的典型题目。 题目连接:http://acm.hit.edu.cn/hoj/problem/view?id=1614 采用Prim算法求最小生成树。 关于如何求球面上任意两点A(a1,b1)和 B( a2,b2 ) 的球面距离,a1,a2是经度,b1,b2是纬度,参考公式: r * acos(cos(a1 - a2) * cos(b1) * cos(b2) + sin(原创 2013-02-11 16:33:45 · 729 阅读 · 0 评论 -
Hoj 2468 GSM
题目链接:http://acm.hit.edu.cn/hoj/problem/view?id=2648 有N块合金,每块合金的金银含量不同,现在知道N块合金融合后银的含量,求金的含量范围? 若只有一种金属,假如有两块,其中一块10%,另一块20%,融合之后的范围(10%,20%) 若有两种金属,假如有两块,其中一块金10%银30%,另一块金20%银40%,融合之后的范围金(10%,20%),原创 2013-08-28 14:00:15 · 2353 阅读 · 0 评论 -
Hoj 3132 CHI-HUO Little P
题目链接:http://acm.hit.edu.cn/hoj/problem/view?id=3132 本题学习计算几何基础:叉积 我们怎么去判断一个点在一条线段的左侧还是右侧呢? 这就要用到向量叉积。叉积的一个非常重要的性质是通过它的符号判断两向量相互之间的顺逆时针关系:设向量P=(x1,y1),Q=(x2,y2) 如果P*Q>0则P在Q的顺时针方向;即:x1*y2 - x2*y1>0原创 2013-01-07 10:16:48 · 979 阅读 · 0 评论 -
Hoj 1143 Area
皮克定理的应用。 皮克定理:一个计算点阵中顶点在格点上的多边形面积公式:S=a+b÷2-1,其中a表示多边形内部的点数,b表示多边形边界上的点数,s表示多边形的面积。 s可以用叉积和来求。b等于这条边的x差值和y差值的最小公约数+1,然后就可以根据公式求得a。 题目:http://acm.hit.edu.cn/hoj/problem/view?id=1143 #include #in原创 2013-02-21 09:23:32 · 490 阅读 · 0 评论 -
Hoj 1157 SCUD Busters
题目链接:http://acm.hit.edu.cn/hoj/problem/view?id=1157 题意:求凸包,求凸包面积,判断某一点在哪个凸包内。 水平序求凸包。 判断某一点在哪个凸包内可以使用叉积面积和是否等于多边形面积和,也可以用相邻的叉积方向是否一样来判读,本题练习第二种。 #include #include #include #include #include原创 2013-04-17 18:14:18 · 812 阅读 · 0 评论 -
SGU 253. Theodore Roosevelt
题目:http://acm.sgu.ru/problem.php?contest=0&problem=253 本题要求在一个给定凸包,一些点有几个是在凸包内的(包括边界)。 以前判断某一点是否在多边形内,可以叉积依次求面积的方法,但是每次查询耗时O(n)。 所以这里提一种每次查询只需要O(lgn)的解法。 就是先按极角排序,然后二分求给定点的极角范围,叉积计算进行求解。 一开始我的线原创 2013-02-27 19:50:25 · 833 阅读 · 0 评论 -
Poj 1113 Hoj 1605 Wall
题目连接:http://poj.org/problem?id=1113 http://acm.hit.edu.cn/hoj/problem/view?id=1605 本题是凸包的典型应用。求凸包用建议水平序,因为极角序要处理共线的问题。 参考:http://www.cnblogs.com/Booble/archive/2011/03/10/1980089.html 有一个问题是水平序的原创 2013-02-26 17:35:50 · 507 阅读 · 0 评论 -
凸包介绍
推荐一个介绍凸包算法的好博客,本文转自:http://www.cnblogs.com/Booble/archive/2011/03/10/1980089.html ==================================================================== 一.卷包裹算法(Gift Wrapping Algorithm)的转载 2013-02-26 14:23:39 · 1838 阅读 · 0 评论 -
codeforces 257 C. View Angle
题目:http://codeforces.com/contest/257/problem/C 极角序。使用atan2(y,x)排序。 这题很容易做错的一点就是开始会想到直接用sort升序排序后,最大减去最小即是所求,其实这是不对的。比如给三点:(-1,-1),(-1,1),(-1,2)测一下。 每个黄色区域的两边上的两点肯定是相邻的,我们可以根据这个已知项来解答: 本题我觉得还是很有思维性原创 2013-02-25 23:58:36 · 991 阅读 · 0 评论 -
Hoj 1102 Jack Straws
本题是处理线段是否相交的题目。 题目链接:http://acm.hit.edu.cn/hoj/problem/view?id=1102 判断两条线段是否相交的模板如下: const double eps = 1e-8; struct Point { int x; int y; Point() {} Point(int _x,int _y):x(_x),y(_原创 2013-02-22 16:56:17 · 820 阅读 · 0 评论 -
Hoj 2485 Myacm Triangles
题目:http://acm.hit.edu.cn/hoj/problem/view?id=2485 求给定点组成的三角形的面积最大值。并且三角形内部不能有其他点。 暴力+叉积即可。 #include #include #include #include #include #include using namespace std; struct Point { char原创 2013-03-05 18:23:25 · 632 阅读 · 0 评论 -
Hoj 2183 Extrusion
题目:http://acm.hit.edu.cn/hoj/problem/view?id=2183 本题核心是求任意多边形的面积。 我们可以用叉积来求。任取一点,顺时针取相邻两点,与这点组成两个向量,进行叉积。顺时针一周求得的所有叉积和求反除以二即是多边形的面积。 #include #include #include #include #include #include us原创 2013-02-19 23:44:54 · 668 阅读 · 0 评论 -
Poj 2284 Hoj 1890 That Nice Euler Circuit
题目连接:http://poj.org/problem?id=2284 题目连接:http://acm.hit.edu.cn/hoj/problem/view?id=1890 本题用到平面图的欧拉公式:设平面图的顶点数、边数和面数分别为V,E,F,则V+F-E=2. 1.在求顶点数V的时候,很容易想到的想法是判断线段两两相交,如果两线段相交,则顶点数+1,但是,两顶点可能会重合,所以必须要求原创 2013-02-25 16:06:40 · 749 阅读 · 0 评论 -
Hoj 1188 Orchard Trees
题目:http://acm.hit.edu.cn/hoj/problem/view?id=1188 本题核心在于如何判定一个点P是否在三角形ABC内(包括在边上)。 方法是:看PAB、PAC、PBC面积之和是否等于ABC的面积即可。 求三角形面积可以用叉积来求,注意X的范围在[1,99],不包括0和100,Y一样。 #include #include #include #includ原创 2013-02-20 09:26:19 · 742 阅读 · 0 评论 -
Poj 2187 Beauty Contest
题目链接:http://poj.org/problem?id=2187 求平面上距离最远的两个点可以用旋转卡壳来做。 如果qa,qb是凸包上最远两点,必然可以分别过qa,qb画出一对平行线。通过旋转这对平行线,我们可以让它和凸包上的一条边重合,如图中蓝色直线,可以注意到,qa是凸包上离p和qb所在直线最远的点。于是我们的思路就是枚举凸包上的所有边,对每一条边找出凸包上离该边最远的顶点,计算这个原创 2013-08-29 11:23:41 · 2880 阅读 · 0 评论