计算几何
文章平均质量分 74
ssslpk
这个作者很懒,什么都没留下…
展开
-
uva10173Smallest Bounding Rectangle (旋转卡壳之最小矩形)
题目链接:http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&category=13&problem=1114&mosmsg=Submission+received+with+ID+10328241在求卡壳时,之前还傻傻地求出了矩形角落的三个点,而想以长乘心宽的方式原创 2012-08-03 00:18:15 · 707 阅读 · 0 评论 -
hdu 3662 3D Convex Hull (三维凸包 模板1)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3662题目意思:给出n 个三维的点,求这些点组成的凸包的面数//============================================================================// Name : hdu3662.cpp// A原创 2012-08-29 00:24:41 · 831 阅读 · 0 评论 -
hdu3694 Fermat Point in Quadrangle 费马点
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3694题意:给出四个点构成四边形(不按顺序给),求费马距离。 1.因为只有四个点,当这四个点可以构成凸四边形时(如图):对角线形成的交点是费马点。就是点1,根据三角形的两边大于第三边可证明。 2.当不能构成凸多边形时,就是那个凹点是费马点(如图):同理可证。 代码如下://有原创 2012-08-02 00:58:17 · 821 阅读 · 0 评论 -
poj2420A Star not a Tree? 费马点
题目链接:http://acm.pku.edu.cn/JudgeOnline/problem?id=2420题目意思:求平面上存在的一点到多边形的各个顶点的距离和最小,即费马点。//0ms#include#include#include#define eps 1e-8using namespace std;const int maxn=120;struct point{d原创 2012-08-02 00:58:05 · 573 阅读 · 0 评论 -
poj3525 半面交+二分
//题目链接:http://poj.org/problem?id=3525//题目意思:求在一个形状为多边形的岛中的一点到海的最大距离//解题思路://有一种方法:二分距离,再求半面交//这里需要注意的是精度问题,长度要从0~10^9二分(好像很多对长度的二分都是10^9的),eps 1e-11//212K 32ms 代码如下:#include#include#原创 2012-07-28 00:17:16 · 609 阅读 · 0 评论 -
ecnu1624求交集多边形面积 (凸多边形交——半平面交)
题目链接:http://acm.cs.ecnu.edu.cn/problem.php?problemid=1624求两个凸多边形的交的面积。其实现在这个题目我在图形学实验课上有实现过了。然而,今天被一道求两个任意多边形的并给搞得头晕掉了。。。敲了好长的时间,喀~~ ,这里我用半平面交求解了。代码如下://========================原创 2012-08-03 00:18:43 · 1710 阅读 · 0 评论 -
poj 2187 Beauty Contest (旋转卡壳之平面最远点对)
题目链接:http://poj.org/problem?id=2187题目意思很明了,就是给出点集,求平面最远两点的距离的平方旋转卡壳,可参考:http://www.cnblogs.com/Booble/archive/2011/04/03/2004865.html,里面讲的不错。还需要注意的是旋转卡壳的方向与凸包的方向要对应。代码如下:#include#原创 2012-08-03 00:17:48 · 729 阅读 · 0 评论 -
poj3528 Ultimate Weapon 求三维凸包的表面积
题目链接: http://poj.org/problem?id=3528模板如下://============================================================================// Name : poj3528.cpp// Author : ssslpk// Version :原创 2012-08-29 00:25:32 · 708 阅读 · 0 评论 -
最小球覆盖
#include #include #include #include #include #include #define sqr(x) ((x)*(x))using namespace std;const int N = 110, nt = 1, L = 30;const double inf = 1e100;const double eps = 1e-10;int n;原创 2013-03-13 10:32:53 · 530 阅读 · 0 评论 -
hdu4273Rescue三维凸包的重心
题目链接 :http://acm.hdu.edu.cn/showproblem.php?pid=4273题意:求一个三维凸包的重心到凸包各个面的的最小距离。模板如下:/** File: main.cpp* Author: ssslpk** Created on 2012年9月8日, 下午3:39*/#include#include#include#incl原创 2013-03-13 10:32:05 · 537 阅读 · 0 评论 -
二维和三维向量的旋转
二维向量旋转:二维向量旋转代码:#include#include#includeusing namespace std;#define N 1000#define eps 1e-8#define PI acos(-1.0)struct point{double x,y;}p[N];int n;//点q绕(x0,y0) 逆时针旋转angpoint rot原创 2013-03-13 10:35:41 · 1281 阅读 · 0 评论 -
hdu2215 凸包+ 最小圆覆盖
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2215题意:给出n颗树,每颗树的直径为1,求一个圆的最小半径,使得这个圆覆盖所有的树。代码如下:#include#include#include#include#define eps 1e-8const int maxn=10000;struct point {doub原创 2012-09-25 23:55:01 · 873 阅读 · 0 评论 -
poj3384 Feng Shui 半平面交
//题目链接:http://poj.org/problem?id=3384//题意:用两个圆去覆盖一个多边形,求最多覆盖面积时两个圆的圆心(按一定顺序)。//多边形向内推进r求半平面交 + 最远点对//这里的数据不够大,可以用暴力求最远点对 94ms AC,代码如下:#include#include#include#define eps 1e-8//using na原创 2012-07-28 00:15:48 · 1023 阅读 · 0 评论 -
poj1755 Triathlon 半平面交
题目链接:http://poj.org/problem?id=1755题目意思:给出N个运动员的游泳,骑车,跑步的三个速度u,v,w,问对于每一个运动员可不可以在比赛中获得第一名。解题思路:刚开始一看到这题根本不懂要干什么,最后才知道要求半平面交。令总路程为S,三个运动的路程的比例为X :Y : 1-X-Y;要在比赛中获胜的条件是在相同路程下的时间用得最短。对于运动员i与另外的运动员j原创 2012-07-28 00:19:06 · 1035 阅读 · 0 评论 -
poj1696 Space Ant 点积,叉积,夹角
//某一赛区题,poj题目链接:http://poj.org/problem?id=1696//题意:在一个平面内给出N个点,每两点之间没有相同的x或y,//求从y最小的一点开始,每次都向左移动,能有多少点符合并求出点对应的下标(要求路线不相交)。//解题思路:第一个点是y最小的点,重点在第二个点要找哪个点,就是x轴正方向夹角最小的点;//再用点积,叉积和夹角,找出其它的点原创 2012-07-28 00:06:13 · 646 阅读 · 0 评论 -
poj 1263 Reflections (计算几何 反射)
题目意思:给出几个圆,再给出一个光源点和方向,模拟反射过程解题思路:1.求出射线;2.求出在这条射线方向与圆的第一个交点,也就判断出是哪个圆;3.把交点做为光源,求对称点,再反回步骤1。难点在第二步,即要判断是否有两个交点(题目中已给出没有一个交点的情况)还要判断这个交点是否是离光源最近的一点(不是刚反射过的那个圆), 还有要注意的是这是射线,不是直线,求出交点原创 2012-07-26 17:52:47 · 834 阅读 · 0 评论 -
计算几何题目列表——第一章
计算几何题的特点与做题要领:1.大部分不会很难,少部分题目思路很巧妙2.做计算几何题目,模板很重要,模板必须高度可靠。3.要注意代码的组织,因为计算几何的题目很容易上两百行代码,里面大部分是模板。如果代码一片混乱,那么会严重影响做题正确率。4.注意精度控制。5.能用整数的地方尽量用整数,要想到扩大数据的方法(扩大一倍,或扩大sqrt2)。因为整数不用考虑浮点误差,而且运算比浮点转载 2012-07-25 00:48:09 · 390 阅读 · 0 评论 -
计算几何题目列表——第二章
一。基础题目1.1 有固定算法的题目A, 最近点对问题最近点对问题的算法基于扫描线算法。ZOJ 2107 Quoit Design 典型最近点对问题POJ 3714 Raid 变种最近点对问题B,最小包围圆最小包围圆的算法是一种增量算法,期望是O(n)。ZOJ 1450 Minimal Circle转载 2012-07-25 00:48:24 · 515 阅读 · 0 评论 -
计算几何题目列表——第三章之群魔乱舞
转自:http://blog.csdn.net/zxy_snow/article/details/6952052三维凸包poj 3528 2974hdu 3662//ECNU 1624 求交集多边形面积 求俩凸多边形面积。水题。可用半平面交,也可以自己YY做。poj 1259 最大内部凸包hdu 3644 多边形内能放进最大圆半径(可能是凹的,二分+判断)转载 2012-07-25 01:38:30 · 726 阅读 · 0 评论 -
poj1271 Nice Milk (dfs+半平面交)
//题目链接: http://poj.org/problem?id=1271//题意:给一个凸多边形的面包,和一瓶深度为h的牛奶,要沾牛奶k次,求可以沾到牛奶的面包的面积//思路:保存各个边被牛奶沾后的位置,用dfs找出要沾的边,然后对多边形执行k个半面交操作(这里我用O(n^2)的联机算法),求面积。。。//曾经纠结了半天,现在重写了一下,没特判wa了一次。。。。。。//原创 2012-08-03 00:17:38 · 901 阅读 · 0 评论 -
hdu 3007 最小圆覆盖(模版)
//题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3007//求点集最小覆盖圆//增量法#include#include#include#define eps 1e-8const int maxn=10000;struct point {double x,y;}cen,p[maxn],po;double r;int n;dou原创 2012-08-03 00:17:26 · 860 阅读 · 0 评论 -
poj2986A Triangle and a Circle (圆与三角形求交)
题目链接:http://poj.org/problem?id=2986这题卡了好久TT...之前写错了 斯特瓦尔特(stewart)公式......公式如下 :设已知△ABC及其底边上B、C两点间的一点D,则有 AB^2·DC+AC^2·BD-AD^2·BC=BC·DC·BD。然后根据圆与三角形相交的4情况来求有向面积.代码如下://=========原创 2012-08-03 00:18:35 · 1008 阅读 · 0 评论 -
poj2079 Triangle (旋转卡壳之最大三角形)
题目链接:http://poj.org/problem?id=2079题意:给出点集,求这个点集所组成的三角形的面积最大。题解:求出凸包(不共线)后,遍历凸包的每个点做为三角形的第一个顶点,然后按凸包的顺序(我的代码是顺时针),依次为第二个点和第三个点。利用叉积的性质可以快速求得面积,按照面积的大小先更新第三个 点,直到下一个第三点与前两个点所形成的面积不大之前的面积,同理更新第二个点;原创 2012-08-03 00:18:08 · 788 阅读 · 0 评论 -
poj3608 Bridge Across Islands (旋转卡壳之两凸包最短距)
题目链接:http://poj.org/problem?id=3608题意:求两个凸包的最短距离。在之前不知道还要求凸包,就直接求卡壳了,果断wa了;还有在求卡壳时我用角度去比较它们的关系也wa了,可见角度这东西很不靠谱啊。针对本题,可参考http://cgm.cs.mcgill.ca/~orm/mind2p.html的英文解说。第一次愿意去看英文版的论文,感觉还是很不错的。原创 2012-08-03 00:17:57 · 813 阅读 · 0 评论 -
hdu3982 Harry Potter and J.K.Rowling(半平面交 + 圆与多边形求交)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3982题目意思:有一块半径为r的圆形蛋糕,其中心在原点,有一个人在某一个点(x,y),现把蛋糕按两点所在直线切蛋糕,求切了n次后,这个人所在蛋糕的面积占总面积的百分比。很容易想到先进行半平面交求出这个人所在位置的区域,再根据这个区域(多边形)求与圆的交,就是就个人得到的蛋糕。原创 2012-08-03 00:18:49 · 2223 阅读 · 1 评论 -
poj1329 Circle Through Three Points 三角形外接圆(水)
题目链接:http://poj.org/problem?id=1329给出三个点,求外接圆的两种表达式://代码如下:#include#include#include#define eps 1e-8struct point{double x,y;};point a,b,c;double distance(point p1,point p2){ return sqrt原创 2012-08-02 00:58:35 · 612 阅读 · 0 评论 -
fzu1393 点是否在平面上 简单三维几何
//fzu1393//题目意思:判断点是否在平面上#include#include#include#define eps 1e-8struct Point3{ double x,y,z;};struct Plane3{ Point3 a,b,c;};Plane3 plane;void input(Point3 &p原创 2012-07-26 17:54:39 · 511 阅读 · 0 评论 -
hdu2436 判断 球与长方体相交
//hdu2436 判断球与长方体(与坐标轴平行)是否相交,之前没看清题目,就把长方体和球三维旋转了。。。。//思路是找长方体与球的最近距离,再和半相比。//后来没有用64位wa的找不着北了。。。。 //ac代码如下:#include#include#includeusing namespace std;#define eps 1e-8原创 2012-07-26 19:18:06 · 1886 阅读 · 0 评论 -
poj1556 The Doors 计算几何+最短路
题目链接:http://poj.org/problem?id=1556//题目意思:在一个10*10的矩形内有几堵墙,求点(0,5)到(10,5)的最短路(不能穿墙而过)//解题思路:记录每堵墙和可能要停留的点,构造(4*n+2)个点的图,求最短路。//0ms AC代码 如下:#include#include#include#define eps 1e-8#def原创 2012-07-27 23:38:31 · 475 阅读 · 0 评论 -
poj3714 两个阵营的 平面最近点对
//poj3714 平面最近点对,基础见poj1007//题目意思:有两个阵营,求一阵营的一点到另一个阵营的一个点存在的最小距离,//注意给每个点添加相应的的阵营,在判断是否不同阵营时异或可得。//代码如下:1688ms 有点久#include#include#include#include#include#define eps 1e-8#defin原创 2012-07-28 00:09:51 · 923 阅读 · 0 评论 -
poj1410 Intersection 线段与矩形相交
//poj1410//题目意思:判断线段是否与矩形相交(注:线段在矩形内也是相交)//解题思路:图形学中的线段裁剪算法,有Cohen-Sutherland,梁友栋-Barsky等,//这里用容易理解的方法:先判断是否有一个点在矩形内,若都没有再去判断4条边与线段是否相交//0ms AC 代码如下:#include#include#include#define e原创 2012-07-28 00:04:57 · 908 阅读 · 0 评论 -
poj 1265 ||poj2954 pick公式 网格
/ :求一个多边形中在网格内点的个数,在边上的点的个数,多边形的面积//poj2954:求三角形内整点个数 ,两题大同小异,//利用pick公式:面积=内点+边上的点/2-1;代码1:poj1265#include#include#include#define abs(x)(x>=0? x:-x)int n;int gcd(int a,int b){ return原创 2012-07-28 00:14:15 · 617 阅读 · 0 评论 -
xmu1341 共圆四边形
//题目链接:http://acm.xmu.edu.cn/JudgeOnline/problem.php?id=1341//题意:YT喜欢四边形,尤其是四点共圆的四边形。//现在YT想问问大家,给你N个点,会组成多少个四点共圆四边形呢。//PS:这一道厦大校赛几何题,我泪奔了好几天,O.O//解题思路://首先想到的当然n^4地暴力果断T回来,然后再想枚举3个点原创 2012-07-28 00:07:40 · 684 阅读 · 0 评论 -
poj2318 TOYS 线划分矩形
题目链接:http://poj.org/problem?id=2318//题目意思://在一个矩形中用n条线来划分(划分的线不交叉此而且只能分左右方向 ),//给出m个点,求一个区域内分别有多少点。//解题思路://判断点在直线的左边还是右边//代码如下:#include#include#include#define eps 1e-8struc原创 2012-07-27 23:35:36 · 402 阅读 · 0 评论 -
hdu1007 平面最近点对
//hdu1007 平面最近点对、//第一次接触平面的最近点对,暴力果断过不了。//解题思路:先按一个坐标轴进行排序比如x轴(若x坐标相同按y排序),//用分冶按x轴把点集分成两块,找出每一块的最近点对然后合并,//在合并过程中还要考虑由两个不同块构成的点对,//这里比较重要的是对所要比较的点要在之前求出最小距离的基础下筛选//代码如下 ://PS:在这题发原创 2012-07-27 00:03:37 · 751 阅读 · 0 评论 -
poj2540 半平面交
//poj2540//题目意思://在一个以(0,0)和(10.0,10.0)为对角线的矩形内有 一个目标点,//一个玩家从(0,0)开始指定另一个点,另一个玩家宣布是靠近还是远去还是相同距离//解题思路://1.对原来的点和所指定的点所成的线段求垂直平分线,(取中点和向量旋转可获得两点)//2.根据指定的方向,再求形成的多边形(多边形的切割):// (1).按一定顺序用一个数原创 2012-07-27 00:03:20 · 612 阅读 · 0 评论 -
hdu1700 二维旋转
//hdu1700//题意:给出一个点,以原点为圆心,//求这个点在圆上的圆的另外两个点,使得三点构成的三角形的周长最长//解题思路://1.首先想到的当然是正三角形的时候周长最长,看客可自行证明;//2.接下来是二维向量偏转问题,//不过呢,用极坐标精度不够啊,wa了,然后先把两个三角函数求出来就可以了。//代码如下:#include#include#原创 2012-07-27 00:03:10 · 486 阅读 · 0 评论 -
poj2653 线段相交的判断
//poj2653//题目意思:逐根放置不同长度的木棒,求哪几根是没有被盖住的;//解题思路:判断线段相交()。值得注意的是判断线段相交的顺序,先从前面的与后面的判断,//若相交,对前面的木棒对应的状态设为false,并退出这根木棒的判断,否则会超时.#include#include#include#define eps 1e-8struct Point原创 2012-07-27 00:06:17 · 629 阅读 · 0 评论 -
poj1584 A Round Peg in a Ground Hole 凸多边形判断 和多边形与圆的位置
//poj1584//题意:给出一系列的点,给出一个圆,判断这些点按一定方向能否构成凸多边形,//若是凸多边形,看这个圆是否在多边形内。//解题思路://1. 凸多边形的判断://分别用0,1,2来表示叉积的值为零,正,负。对每相邻的三个点进行叉乘,//而相邻的两个叉乘的值不能异号(根据叉乘可判断出第二个向量在第一个向量的顺时针或逆时针方向),// 当遍历完所有相邻原创 2012-07-27 00:02:52 · 630 阅读 · 0 评论 -
poj 1375 Intervals 圆的切线
题目链接:http://poj.org/problem?id=1375题意:有一光源,被若干个圆摭住了,求地面上阴影 题解:利用向量旋转求出切线与圆的两个交点,根据两点成线得出aX+bY+c=0的直线,令Y=0时,求出地面的坐标,再合并有连接的阴影。 //代码如下: #include#include#include#include#define eps原创 2012-08-02 00:58:26 · 647 阅读 · 0 评论