
计算几何
文章平均质量分 77
Cxiaokai
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
hdu 3265 Posters
这是09宁波Regional Contest 一道计算几何的题目。题目还是比较简单的。大致也是求矩形面积的并。但是有一点点的变化。关键是代码稍微有点长,其实题目很简单。解决方法还得典型的离散化+线段树+扫描线。代码如下:#include#include#inclu原创 2011-08-08 16:19:14 · 632 阅读 · 0 评论 -
poj 1329 Circle Through Three Points
此题目的输出好恶心..WA一次之后,发现输出的时候,有些情况没考虑到,重新再敲代码,以至于代码敲了老长老长...还有A过去了。代码如下:#include#include#includeusing namespace std;struct point{ dou原创 2011-08-08 16:30:17 · 519 阅读 · 0 评论 -
poj 2002 Squares
对于给定的点,可以组成多少个正方形。这个题目还是比较简单的了。首先建给点的点进行排序。按照横坐标从小到大的顺序来排序,如果横坐标相同,就按照纵坐标从小到大的顺序来排序。我们可以找到任意的两个点。通过公式,计算出以这两个点为边的另外的两个点。这样的四个点可以组成一个正方形。公式原创 2011-08-08 16:56:54 · 372 阅读 · 0 评论 -
截部分陈宏对用线段树解矩形并的轮廓(picture 问题的深入讨论)
Picture问题的深入讨论基于对数据结构选择的进一步分析,我们来重新考虑一下Picture问题的数据结构的选择,即采用树形结构来描述一组超元线段的状态。一、线段树受到累计扫描过程的启发,一组超元线段属于轮廓的数目,它与跨越该组超元线段的矩形的纵向边位置关系密切。不妨转载 2011-08-09 11:35:49 · 1589 阅读 · 0 评论 -
poj 1177 && hdu 1828
求矩形并后的轮廓。陈宏的线段树对这个问题分析的相对的好。但是,我对这个扫描理解的还不是很透彻。需要回国头来再好好看看!我觉得,有些东西随着时间,自己慢慢琢磨琢磨,多回国头来看看,也许不经意间,就能理解很多了。最终也就明白了!#include#include#include原创 2011-08-09 11:42:07 · 501 阅读 · 0 评论 -
zoj 1010
自己敲代码的能力太烂了啊,还有待提高啊!怎么老是犯低级的错误呢!首先,敲代码时敲错变量,第二调试时候的检测语句老是不知道删除,导致程序多贡献wa。谨记!!!这个题目,判断是否是多边形的时候,直接用黑书的模版就过了,但是我敲错一个变量老是没找出来,调试的很久很久。判断给定的点能原创 2011-08-12 17:31:01 · 933 阅读 · 0 评论 -
poj 1032 && zoj 1265 Area
#include#include#include#includeusing namespace std;#define N 102struct point{ double x; double y;}p[N],s[N];double det(dou原创 2011-08-12 20:35:56 · 559 阅读 · 0 评论 -
poj 2546 两圆相交求面积
#include#include#include#includeusing namespace std;#define PI 3.14159265358struct point{ double x,y,r;}a,b;double dis(point a,原创 2011-08-06 11:42:07 · 804 阅读 · 0 评论 -
zoj 1081
这个题目做了很久,一直wa。后来发现,原来多边形可能不是凸多边形,一下子醒过来了。既然不是凸多边形,那么面积法和叉积法都不能用了,看到网上有说用射线法的,也就把这个题目当做学习射线法的例题了。判断点是否在多边形内部(并非凸都变形),射线法的算法流程大致如下: 由被原创 2011-08-23 09:24:02 · 685 阅读 · 0 评论 -
poj 1389 Area of Simple Polygons
完全相同与poj 1511,可以直接离散化来做,也可以”离散化+线段树+扫描线“搞定,方正方法不止一种;离散化的程序:#include#include#include#includeusing namespace std;#define N 1002int t原创 2011-08-08 16:10:08 · 613 阅读 · 0 评论 -
poj 1151 && hdu 1542 离散化求矩形面积的并
这个题目的大致思路是这样的:输入n个矩形。用两个数组,分别记录没个矩形的x,y坐标。最后对x,y坐标进行排序。排序好之后,找第k个矩形的两个x坐标和y坐标。用一个标志数组来标记这一块区域。最好离散化后的小的矩形,跟标记的区域进行相乘,得到这块区域的值。如果是求面积,区域就可以用1原创 2011-08-08 10:42:59 · 693 阅读 · 0 评论 -
计算几何的中途总结
计算几何已经刷题有两个月了,但是,来到优快云今天来发表第一篇文章。 说一下这两个月来,我在计算几何中走过的路程。首先,刚开始的时候是在刷线段方面的题目。自我认为这一部分的题目是相当的多的,自己刷题找到是分类。刷过很多的题目,但是我现在能想到的我用过的方法也列一原创 2011-08-04 09:24:14 · 483 阅读 · 0 评论 -
POJ 2187 旋转卡壳第一题
这个题目没什么好说的。昨天做这个题目的时候,卷包裹法有很多心酸,死活过不去,当步进法就能够1A。看Discuss里有人用旋转卡壳来写。也就学习了一下。这次也用旋转卡壳来写了一下。用凸包(两种方法)+旋转卡壳,都过了~~~!#¥%……&×()步进法+旋转卡壳#inc原创 2011-08-04 16:36:44 · 840 阅读 · 0 评论 -
zoj 2107 || hdu 1007 求最近点对
分治法求最近点对。我就说一下步骤:首先对所有的点,按x排序。找下表中间的点。这样能够合理地把一堆点分成两堆,递归求这两堆点之中的最小距离。在分成的两堆点中找一个最小的距离,作为最小的距离。以最下标中间的那个点为准,以横坐标作为衡量,找据这个点很坐标之差小于等于最小距离的所有的点,原创 2011-08-04 20:09:11 · 1912 阅读 · 1 评论 -
poj 3608 旋转卡壳求两凸包间的最近距离
旋转卡壳的确很卡人。现在本人学旋转卡壳还在初级阶段。但是这是算法的效率的确很高,所有必需得学会我想说的是旋转卡壳求凸包的最近点对距离。大体思路如下: 对于给定的点,调整为逆时针方向; 一个P凸包中找纵坐标最小的点,在另一个Q凸包中找纵坐原创 2011-08-05 20:52:15 · 1312 阅读 · 1 评论 -
HUD 3007 Buried memory
用最小的圆去覆盖平面点集。思路:对平面的点集求凸包。枚举凸包上的点,找到最大距离。现在想想也可以用旋转卡壳来求最大距离。以最大距离的一半做为圆的半径。但是还有一种情况,就是有三个点的时候,很可能求出两点间的最大距离,以这个距离做为半径画出的圆,不能包围第三个点。这时还需要求一原创 2011-08-06 08:44:38 · 1038 阅读 · 0 评论 -
HDU 3264 求两圆相交的面积
此题意很简单,思路也容易想到。但是我就是卡在了求两圆相交求面积的地方。还好现在有了模板了。不说了,直接贴代码,还得多多总结,二分真的很好用,要学会用啊!#include#include#include#includeusing namespace std;原创 2011-08-06 11:14:25 · 2480 阅读 · 0 评论 -
POJ 3714 变种最近点对
最近点对的问题。题意给定两个点集,求两个点集中的点的最小距离。 大体思路:找到对两堆点集进行标记。然后按照x排序。在求最近点对的时候,找到距离中间点最近点加入数组b中。然后求数组b中且不是同一个点集中的最小的距离。最终返回最小距离。代码如下:#includ原创 2011-08-05 11:10:18 · 584 阅读 · 0 评论 -
hdu 3714 && zoj 3203 三分
初识三分,感觉这个算法也不是很难理解,还感觉这个算法好优美。但是,要学习到了,能用三分的地方,函数必须满足单峰性。同二分比较,二分时候,需要函数满足单调性。这次,看了别人的代码,深深的进入了脑子里面了。其实,这个题目真的很简单。但在自己真的太菜了,还得多总结。现在只能看这别人的代原创 2011-08-07 09:37:14 · 1193 阅读 · 0 评论 -
zoj 1090 求三角形的外心(模板题)
这个题目没得说,就直接套用三角形外心的模板就可以了。这个题目可以作为三角形外心的模板来用了。#include#include#includeusing namespace std;#define PI 3.141592653589793struct point原创 2011-08-26 17:25:16 · 1022 阅读 · 0 评论