
ACM_计算几何
文章平均质量分 79
Christine1024
这个作者很懒,什么都没留下…
展开
-
POJ 1410 Intersection (判断线段是否与矩形相交)
题目大意:给定一条线段的起始和终止点的坐标,和一个矩形的左上和右下的坐标,判断线段是否与矩形相交。注意:矩形是实心 的,而且矩形的两点坐标不一定是按照左上、右下的顺序。解题思路:首先需要确定矩形左上和右下的坐标,判断线段是否在矩形内部。接着判断线段是否和矩形的某条边相交即可。代码如下:#include#include#include#include#include原创 2013-07-17 19:03:35 · 1036 阅读 · 0 评论 -
hdu 3685 Rotational Painting
模板:点到线段上的最近点 线段交点 graham法求凸包 求凸多边形的重心 题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3685题目大意:一个多边形放在桌面上,求有几种放的方式能够使多边形不倒。解题思路:任何一个放置的方式,肯定由两个点连成的一条边支撑的,分析可知起作用的点是组成该多边形的凸包上的点。若原创 2013-10-18 18:24:51 · 614 阅读 · 0 评论 -
求凸多边形的重心 例:hdu 1115 Lifting the Stone
1. 1 累加和求重心设平面上有N 个离散数据点( xi , yi ) ( i = 1, 2, ., n) , 其多边形重心G( . x1, . y1) 为: 这是求多边形最简单直观的方法。可以直接利用离散数据点的x, y坐标就能求图形重心。但是缺陷在于没有对离散数据点所围图形做任何处理和分析,精度不够。1. 2 算法一:在讲该算法时,先要明白下面几个原创 2013-10-17 08:57:29 · 1405 阅读 · 0 评论 -
hdu 4741 Save Labman No.004
题目大意:求空间两条直线的最短距离及最近的点坐标解题思路:http://wenku.baidu.com/view/ea02ff8a6529647d2728520c.html代码实现:#include #include #include #include #include using namespace std;struct node{ doub原创 2013-09-15 17:17:52 · 952 阅读 · 0 评论 -
FZU 1015 土地划分
#include#include#include#include#includeusing namespace std;#define N 100struct point{ int x; int y;};struct Vector{ point s; point e;};point p[N];Vector v[N];#define原创 2013-07-17 20:43:13 · 816 阅读 · 0 评论 -
POJ 3528 三维凸包模板
#include #include #include #include using namespace std;#define inf 0x7fffffff#define max(a,b) (a>b?a:b)#define min(a,b) (a<b?a:b)#define eps 1e-7#define MAXV 505//三维点struct pt { doubl原创 2013-09-26 23:34:58 · 1109 阅读 · 0 评论 -
hdu 4082 Hou Yi's secret
题目大意:给定N个点,求能够组成的三角形中相似三角形的最大的数目解题思路:就是各种枚举啊 然后考虑了各种情况 结果各种wrong啊 悲剧啊~~ 郁闷啊~~ 精度卡的太…了 最后发现是因为开方损失了精度。谨记谨记:以后计算几何的题尽量少开方!!!!!代码实现:#include #include #include #include #in原创 2013-10-02 14:10:09 · 762 阅读 · 0 评论 -
hdu 4720 Naive and Silly Muggles
题目大意:给出三个点,确定一个包含三个点的最小圆,然后判断点p是否在圆内(包括边上)还是圆外,前者输出Danger,后者输出Safe。解题思路:1)如果三点共线,则最小圆的圆心即为最长边的中点 2)如果三点构成的三角形是锐角三角形,则最小圆的圆心即为三角形的外心 3)如果三点构成的三角形是钝角三角形或直原创 2013-09-11 16:31:08 · 858 阅读 · 0 评论 -
HDU 4667
#include #include #include #include #include const int MAXN = 300;const double PI2 = acos(-1.0) * 2.0;const double EPS = 1e-5;const double pi = acos(-1.0);struct REC{ double x,y,r;}li原创 2013-08-13 17:06:46 · 1138 阅读 · 0 评论 -
旋转卡壳求凸包间的最短距离 POJ 3608
#include #include #include #include #include using namespace std;#define min(a, b) ((a) < (b) ? (a): (b))#define EPS 1e-8const int MAXN = 10010;struct Point{ double x, y; Point(){}原创 2013-10-22 10:48:28 · 841 阅读 · 0 评论