
计算几何
文章平均质量分 77
谢符宝
业精于勤,荒于嬉行成于思,毁于随。
展开
-
poj1039(计算几何)线段相交
题意:给一个管道求光线能穿到的最大x坐标。解法:通过旋转光线一定可以使得光线接触一个上点和一个下点。枚举接触的上下点,然后逐一判断光线是否穿过每个拐点面。碰到一个拐点面没有穿过的,则是因为与其左边线段相交,求出直线与线段交点更新答案即可。不想交则说明在前一个拐点已经穿出去了。代码:/**********************************************原创 2014-05-20 20:35:17 · 947 阅读 · 0 评论 -
FZU 2144(几何+贪心区间覆盖)
题意:三维空间给出n个蚊子的初始位置(ax,ay,az)和移动趋势(dx,dy,dz),那么每个蚊子坐标随时间变化的函数就是(ax+dx*t, ay+dy*t, ax+dz*t)。每次射杀一枪,可以把距离原点距离len之内的蚊子全部杀死。问最多能射杀几只蚊子,这时至少要射杀几次?解法:先求出每只蚊子在射程之内的时间区间,即(ax+dx*t, ay+dy*t, ax+dz*t)^原创 2014-07-21 10:53:38 · 780 阅读 · 0 评论 -
poj3737(三分搜索)
题意:给出一个圆锥的表面积(侧面积+底面积),求圆锥的最大体积。解法:三分半径。左边界随便取个极小的数,右边界可以假定这个圆锥是平的,高是0.这是底面积的二倍是表面积。代码:/******************************************************* author:xiefubao***************************原创 2014-05-13 11:02:17 · 1707 阅读 · 0 评论 -
hdu3400(三分套三分)
题意:平面上两条线段 AB,CD。 A到B的速度v1 C到D的速度v2 其他地方的速度V3,求A到D的最短时间原创 2014-05-13 22:22:46 · 1416 阅读 · 0 评论 -
Codeforces(429D - Tricky Function)最近点对问题
D. Tricky Functiontime limit per test2 secondsmemory limit per test256 megabytesinputstandard inputoutputstandard outputIahub and Sorin are the best competitive原创 2014-05-12 13:43:58 · 1491 阅读 · 0 评论 -
FOJ 2148(求凸四边形数量)
题意:给n个点,求图中凸四边形的数量。解法:n代码:#include #include using namespace std;struct point{ int x,y;} points[40];int abs(int k){if(k<0) return -k;return k;}int mult(point a,point b,point c){原创 2014-01-23 23:30:05 · 860 阅读 · 0 评论 -
poj4048(计算几何)
题意:有一个强大的弓弩,可以射穿所有障碍,给n(n解法:离散化所有的墙段点,以出发点为一端和每个墙端为另一端(加长到足够长),然后分别计算和多少线段非严相交。线段非严格相交的判定是: 1、严格相交(叉积判断) 2、点在线段上,这时叉积等于0并且点在线段之间代码:/**************************************************原创 2014-05-09 14:28:15 · 718 阅读 · 0 评论 -
hdu4386(求四边形最大面积)
题意:给出一个四边形的边长,求四边形最大面积。不合法输出-1;解法:比较明显的三分,先枚举四边形的边的连接,然后三分一个对角线长度。但是比较怪异的是eps取1e-8wa了,去1e-7才可以过。不知道谁可以解释一下。 还有这题还有一个结论,后来才知道的。len是周长的二分之一。area=sqrt((len-a)*(len-b)*(len-c)*(len-d));原创 2014-05-15 11:00:55 · 1081 阅读 · 0 评论 -
求一条直线上能包含的最多数量的点
题目大意:给N个二维点的坐标,求在所有点的连线中一条直线所能包含最多的点的个数;2000ms,1000的复杂度刚开始自己想了个N^3复杂度的方法,即使加上了感觉很有效的剪枝,但是依然TLE了。看了网上某ACMer的博客,恍然大悟,原来N^2logN就可以过了;大致思路:枚举每一个点:计算其他所有点和此点连线的斜率,然后将斜率排序。此时,便可以在排好序的斜率中将相等的斜率数量找出来(原创 2014-01-16 16:38:38 · 1727 阅读 · 0 评论 -
FZUoj2035(几何)
题意:顺时针或逆时针给一个n凸多边各点的坐标,问此多边形是否是轴对称多边形。解法:当n为偶数时候,对称轴是一条边的垂直平分线或者是两个点的连线。都可以O(n)枚举,此时再判断其余点是否关于此轴对称; 当n为奇数时候,对称轴只能是一条边的垂直平分线。同样枚举。 总复杂度是O(n^2);代码:/******************************************原创 2014-03-01 18:50:55 · 703 阅读 · 0 评论 -
poj3301(三分-坐标旋转)
题意:给出最多30个点的坐标,求覆盖所有点的最小正方形面积。解法:没有证明正确性,网上对于此法的正确性有争议。反正是用三分过的,也许数据弱了。就是在0-90度的旋转范围内三分角度(所有点旋转的角度)。正方形的边总是平行于坐标轴的,那么每次正方形的边长总是最大x坐标之差和最大y坐标之差中更大那个。 点旋转A后的坐标公式原创 2014-01-27 00:51:51 · 932 阅读 · 0 评论 -
hdu3685(几何重心与凸包结合)
题意:给一个多边形(有可能是凹多边形)。问有多少种能够使得它稳定放置的方式。当然稳定的原则就是重心做垂线在支撑点之内。解法:因为有可能是凹多边形,所以先求出多边形的凸包,这是在放置时候会接触地面的所有点。然后将重心与每天凸边判断是否稳定;代码:/******************************************************* @author:原创 2014-11-02 17:42:46 · 1133 阅读 · 0 评论