
计算几何
FeBr2
(๑•̀ㅂ•́)و✧
展开
-
计算几何 ( 判断线段相交 )——You can... ( HDU 1086 )
题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=1086分析&&题解: 给出N条线段,每条线段告诉你起始点和结束点,判断这N条线段构成多少条交点,不同线段交于一点可以被重复计算。这就非常简单了,直接模板过去。判断线段相交(包括端点):double multiply(point sp, point ep, point op) //得到线段(sp原创 2016-07-24 15:49:07 · 798 阅读 · 0 评论 -
计算几何 ( 求多边形面积 )——改革春风吹满地 ( HDU 2036 )
题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=2036分析&&题解: 给出一个多边形的顶点数N和这N个顶点的坐标(坐标为整数,所以注意要将 点结构体里的类型换成int,否则用C读取不进去!!!),然后直接套模板计算即可。计算多边形面积://vcount 为定点数,p[]存储定点,从0开始double Area(int vcount, po原创 2016-07-24 17:29:40 · 437 阅读 · 0 评论 -
计算几何 ( 求两圆相交面积 )——Open-air shopping malls ( HDU 3264 )
题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=3264分析: 给出N个圆的圆心坐标和圆半径,然后以其中一个圆心做一个大圆要求覆盖所以圆并使得覆盖面积大于被覆盖圆的1/2,求该大圆的最小半径。 因为N最多为20个,我们可以直接搜索每一个圆心,然后二分查半径范围,直到确定半径小于误差。题解:1.建立圆:const double eps = 1原创 2016-07-25 11:30:16 · 939 阅读 · 0 评论 -
计算几何 ( 求凸包,计算三角形面积 )——最大三角形 ( HDU 2202 )
题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=2202分析: 给出平面上的N个点,在其中找出三个点,使得其构成的三角形的面积最大。题解: 先用找出凸包上的所有点,然后一次枚举遍历即可。1.求凸包:int cmp(point a, point b) //水平排序{ if(a.x==b.x)return a.y<b.y;原创 2016-07-25 14:25:21 · 2755 阅读 · 0 评论 -
计算几何 ( 凸包 )——Wall ( HDU 1248 )
题目链接 http://acm.hdu.edu.cn/showproblem.php?pid=1348分析: 给出N个点,求距离这N个点围成的多边形距离为L的围墙的周长。可以得出,这个周长就是多边形周长加上一个圆的周长。多半形周长可以先求出凸包点集,然后依次累加距离即可。然后这个题需要注意输出格式!最后一个输出数据不用加两个换行!!!题解: 1.求凸包:int cmp(point a,原创 2016-07-25 20:15:05 · 418 阅读 · 0 评论 -
RMQ+二分——GCD ( HDU 5726 ) ( 2016 Multi-University Training Contest 1 1004 )
题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=5726分析: 给出一串数,然后进行区间查询,每次查询一个区间的gcd,并且要求同时输出和这个区间gcd值相等的其它区间的个数。题解: 1.RMQ快速区间查询:(此处查询的是GCD)int dp[Maxn][21];//dp[i][j]表示从 number[i]开始,长度为2^j次的区间的最值原创 2016-07-25 17:28:09 · 486 阅读 · 0 评论 -
计算几何 ( 判断线段相交 )——土地划分( FZU 1015 )
题目链接: http://acm.fzu.edu.cn/problem.php?pid=1015分析&&题解: 需要注意不少细节,首先需要判断两条线段是否重合,然后考虑起点和终点重合的情况(结果需要减1),然后还是继续套模板。判断线段相交 (包括端点)AC代码:#include <iostream>#include <cstring>#include <cstdio>#includ原创 2016-07-24 17:06:00 · 425 阅读 · 0 评论 -
计算几何 ( 平面欧拉定理+大数运算 )——UVA 10213
模板及内容转载自 http://blog.youkuaiyun.com/metaphysis/article/details/6457966#comments(侵删)题目: 分析:一个圆被圆上 n 个点的连线所划分,能得到的最大区域数是 1 + C(n, 2) + C(n, 4)。具体可参见 维基网页 http://en.wikipedia.org/wiki/Dividing_a_circle_into转载 2016-07-25 21:38:19 · 659 阅读 · 0 评论