
几何
Bread Sir
记录算法之路
展开
-
求三角形面积
做题时竟然被这个卡住了,高中三角函数还给老师了QAQ。一个三角形三条边a,b,c,假如我们知道一个顶点到对边的距离(即高),那么就能够1/2*底*高计算出来三角形面积。上面的是一般的情况,如果给一个角度呢?比如知道a和b长度,和a和b的角度是多少?那么就得转化一下了: h = b×sin< a,b > S = 1/2×h×a =>S = 1/2×a×b×sin原创 2017-05-01 10:22:51 · 401 阅读 · 0 评论 -
计算几何——线段的性质
本次我们研究线段的一些性质,并且可以用一些数学知识设计一些算法来解决一些问题。问题:1.对于给定的两个有向线段p0p1和p0p2,相对于它们的公共端点p0来说,p0p1是否在p0p2的顺时针方向?2.对于给定的两个线段p0p1和p1p2,如果先沿着p0p1再沿着p1p2前进,那么在点p1处是向左转还是向右转怎么判断。3线段p1p2和p3p4是否相交?对于这些问题,我们都需要使用一个计算公式—原创 2017-05-02 15:00:57 · 526 阅读 · 4 评论 -
极角排序
在求凸包的问题中,遇到一个小问题——极角排序 就是给定一个点u,然后再给一个点集,要求根据线段au的极角进行排序。假设一个点用结构体表示,有x和y两个结构体变量分别表示点的横坐标和纵坐标。排序重写cmp如下:int cmp2(const Node &a, const Node &b){ return atan2(1.0*(a.y-u.y), 1.0*(a.x-u.x)) < atan2(原创 2017-05-03 11:19:58 · 467 阅读 · 0 评论 -
求凸包——Graham扫描算法
——————byMBA智库 http://wiki.mbalib.com/wiki/%E5%87%B8%E5%8C%85算法这里就介绍一个Graham扫描算法Graham扫描法 由最底的一点A1开始,计算它跟其他各点的连线和x轴的角度,按小至大将这些角度排序,称它们的对应点为A_2,A_3,\ldots,A_n。这里的时间复杂度可达O(nlogn)。 考虑最小的角度对应的点A3。若由A2到A3的路原创 2017-05-05 15:14:04 · 1229 阅读 · 0 评论 -
POJ - 1127 Jack Straws(线段相交/并查集)
问题描述In the game of Jack Straws, a number of plastic or wooden “straws” are dumped on the table and players try to remove them one-by-one without disturbing the other straws. Here, we are only concerned原创 2017-05-02 20:34:39 · 372 阅读 · 0 评论