![](https://img-blog.csdnimg.cn/20190918140213434.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
计算几何
一些计算几何方面的编程题
NeverMoreH
^_^
展开
-
uva5984(简单计算几何)
题意:给出n个图形,三角形、正方形和圆形,问这些图形覆盖多少个整数点。思路:每读入一个图形,就去计算这个图形覆盖了多少个点,用vis[][]来标记哪些点被覆盖过。代码:#include#include#include#include#include#include#includeusing namespace std;#define maxn原创 2015-08-29 10:55:30 · 280 阅读 · 0 评论 -
uvalive4838(凸包+重心)
题意:给出一个n边形,我们要输出有多少种摆放方案使得这个多边形能够稳定摆放(如果重心落在边的端点上,不能稳固)。思路:用这n个点围成一个凸包,每次用凸包的一个边当做底边,判断重心是否落在这条边的端点上或者落在边的外面即可。注意:一定要用初始的n边形求重心,不能用凸包求重心,因为这个我们WA了三个小时。代码:#include #include #inclu原创 2015-08-29 20:26:28 · 397 阅读 · 0 评论 -
判断直线与线段是否相交,相交则输出交点x轴坐标
代码:int ControlFloat(double x)//精度控制{ if(fabs(x)<1e-11) return 0; return (x>0)?1:-1;}double ChaJi(point p0,point p1,point p2)//叉积{ return (p1.x-p0.x)*(p2.y-p0.y)-(p2.x-p0.x)*(p1.y-p0.y);}b原创 2015-07-29 19:21:44 · 1523 阅读 · 0 评论 -
hdu3694(四边形的费马点)
题意:给出四边形的四个顶点,让你求出一个点,它到四个顶点的距离之和最小,输出最小距离。思路:四边形如果是凸四边形,那么这个点一定是对角线交点,如果不是凸四边形,那么这个点一定是四个顶点之一。所以每次只要对这五个点分别求一次答案,取最优的即可。代码:#include#include#include#include#include#include#inc原创 2015-08-12 16:46:28 · 1352 阅读 · 0 评论 -
uvalive5090(三维凸包)
题意:给出一些三维的点,求出一个凸包,输出凸包有多少个表面。思路:模板。。。队友找了一个巨全面的模板,贴过来。代码:#include#include#include#include#includeusing namespace std;const int MAXN=550;const double eps=1e-8;struct Point{原创 2015-09-05 18:17:00 · 847 阅读 · 0 评论 -
poj2079(一堆点找出最大的三角形)
题意:给出n个二维坐标点,找出三个点,它们组成的三角形面积最大。思路:首先,面积最大的三角形的三个点一定在凸包上,我们先求所有点的凸包,然后选择一个边i、j,枚举k,找到一个最大的面积,然后定下i,枚举j和k,找到最大的面积。pojG++是坑!代码:#include#include#include#include#include#include#原创 2015-09-23 18:52:05 · 2261 阅读 · 0 评论 -
poj2187(最远点的距离的平方)
题意:给出n个点,求最远的点对的距离的平方。思路:旋转卡壳。代码:#include#include#include#include#include#includeusing namespace std;const double pi=acos(-1.0);const double eps=1e-8;int cmp(double x){原创 2015-09-23 20:05:02 · 361 阅读 · 0 评论