文章分类 -  计算几何

poj 3608 两凸包最近点,旋转卡壳
摘要:http://poj.org/problem?id=3608给定两个非连接(比如不相交)的凸多边形 P 和 Q, 目标是找到拥有最小距离的点对 (p,q) (p 属于 P 且 q 属于 Q)。事实上, 多边形非连接十分重要, 因为我们所说的多边形包含其内部。 如果多边形相交, 那么最小距离就变得没有意义了。 然而, 这个问题的另一个版本, 凸多边形顶点对间最小距离对于相交和非相交的情况都有解存在。回到我们的主问题: 直观的, 确定最小距离的点不可能包含在多边形的内部。 与最大距离问题相似, 我们有如下结论:两个凸多边形 P 和 Q 之间的最小距离由多边形间的对踵点对确立。 存在凸多边形间的三种 阅读全文
posted @ 2011-05-12 13:28 敌敌 阅读(1385) 评论(0) 推荐(1)
poj 1279 半平面交求多边形的核,求核的面积
摘要:http://acm.pku.edu.cn/JudgeOnline/problem?id=1279这个问题是所谓多边形的核,在一个多边形(不一定是凸的),要求找到一个区域,使得在这个区域可见多边形的所有边界。#include <cmath>#include <stdio.h>#include <string.h>#include <algorithm>#include <iostream>using namespace std;typedef double TYPE;#define MaxPoint 1550#define Epsil 阅读全文
posted @ 2011-05-10 11:27 敌敌 阅读(965) 评论(1) 推荐(0)
poj 1474 半平面交求多边形的核,存在性判断 (与3335 一模一样)
摘要:http://acm.pku.edu.cn/JudgeOnline/problem?id=1474#include <cmath>#include <stdio.h>#include <string.h>#include <algorithm>#include <iostream>using namespace std;typedef double TYPE;#define MaxPoint 110#define Epsilon 1e-10 /*验证*///精度的范围 ,根据不同的情况调整精度值 //空间中的点,可以用来作为二维点来用 阅读全文
posted @ 2011-05-10 10:59 敌敌 阅读(248) 评论(0) 推荐(0)
poj 3130 半平面交求多边形的核,存在性判断(跟3335题一模一样,只不过输入的的顺序不一样)
摘要:所谓星形多边形,指的是这样的多边形:在其内部至少有一点P,其余任何一个在多边形内(包含边上)的点和P点的连线都在多边形内,P称为中点,通常一个星形多边形有不止一个中点。判定方法是先将所有边两两求出交点,然后依次判断这些交点是不是中点,只要有一个是,多边形就是星形多边形,否则就不是。因为可以证明,只要是星形多边形,这些交点中至少有一个一定是其中点。判断P点是否是中点的方法是:所有顶点与P点之间连一条线,若有连线不全在多变形内,则不是中点。这个问题又可以转化为按一定的顺序(顺时针或逆时针)遍历每条边,看P点是否在所有边的同一侧(右侧或左侧),是的话,P就是中点。#include <cmath 阅读全文
posted @ 2011-05-10 10:34 敌敌 阅读(461) 评论(0) 推荐(0)
poj 3335 半平面交求多边形的核,存在性判断
摘要:http://acm.pku.edu.cn/JudgeOnline/problem?id=3335问给出的多边形中是否存在一点可以观察到整个多边形。多边形核的判断,这里只需要判断存不存在,即使是一个点也可以.题目是顺时针给出点的#include <cmath>#include <stdio.h>#include <string.h>#include <algorithm>#include <iostream>using namespace std;typedef double TYPE;#define MaxPoint 110#def 阅读全文
posted @ 2011-05-10 10:25 敌敌 阅读(573) 评论(0) 推荐(0)
POJ 1265 Pick公式的应用,多边形与整点的关系(存在一个GCD的关系)
摘要:http://acm.pku.edu.cn/JudgeOnline/problem?id=2954给定顶点座标均是整点(或正方形格点)的简单多边形,皮克定理说明了其面积A和内部格点数目i、边上格点数目b的关系:A=i+b/2 - 1.#include<iostream>#include<math.h>#include <stdio.h>using namespace std;#define Abs(x) (((x)>0)?(x):(-(x))) /*验证*/#define MAXN 500typedef double TYPE;//空间中的点,可以用来 阅读全文
posted @ 2011-05-09 23:58 敌敌 阅读(367) 评论(0) 推荐(0)
poj 2954 Pick公式的应用,三角形与整点的关系(存在一个GCD的关系)
摘要:PICK 公式: S=e/2+i-1 S为多边形面积 i 为多边形内部的格点数,e为多边形边上的格点数http://acm.pku.edu.cn/JudgeOnline/problem?id=2954#include <stdio.h>#include <string.h>#include <iostream>using namespace std;typedef double TYPE;//空间中的点,可以用来作为二维点来用 struct POINT {/*验证*/ TYPE x; TYPE y; TYPE z; POINT() : x(0), y(0), 阅读全文
posted @ 2011-05-09 22:06 敌敌 阅读(303) 评论(0) 推荐(0)
poj 1873 World Final的水题,先求凸包,然后再搜索。由于规模不大,可以使用位运算枚举
摘要:基本思想是:用dfs求最佳解;判断解是否成立是,要用砍倒的长度和凸包周长进行对比,这里求凸包http://acm.pku.edu.cn/JudgeOnline/problem?id=1873#include <cmath> #include <cstdio> #include <memory> #include <algorithm> #include <iostream>#include <stdlib.h>#include <string.h> using namespace std; #define In 阅读全文
posted @ 2011-05-09 13:11 敌敌 阅读(358) 评论(0) 推荐(0)
poj 2007 凸包,按极角序输出方案
摘要:http://acm.pku.edu.cn/JudgeOnline/problem?id=2007#include <cmath> #include <cstdio> #include <vector> #include <algorithm> #include <iostream> using namespace std; typedef double TYPE; //空间中的点,可以用来作为二维点来用 struct POINT {/*验证*/ TYPE x; TYPE y; TYPE z; POINT() : x(0), y(0) 阅读全文
posted @ 2011-05-09 10:37 敌敌 阅读(482) 评论(0) 推荐(0)