随笔分类 - 数学--计算几何
摘要:链接二分高度,算面积的地方有点麻烦,没有用求交点的模板,直接自己按三角形相似手算了一下,写的有点麻烦。上下界直接取水可放的最高点以及最低点。自己的长得很挫的代码 1 #include 2 #include 3 #include 4 #include 5 #include 6 #incl...
阅读全文
摘要:链接枚举伞的圆心,最多只有20个,因为必须与某个现有的圆心重合。然后再二分半径就可以了。 1 #include 2 #include 3 #include 4 #include 5 #include 6 #include 7 #include 8 #include 9 #include10 usi...
阅读全文
摘要:链接貌似这样的叫解析几何重点如何求得过光源到圆的切线与地板的交点x坐标,可以通过角度及距离来算,如图,根据距离和半径可以求得角度a、b、r,自然也可以求得d1,d2.至于方向问题,在求r得时候 可以使r = asin((p.x-c.x)/d) p为源点,c为圆心 ,d为两点距离。若在反方向,自然r为...
阅读全文
摘要:链接普通的暴力复杂度达到O(n^4),对于这题肯定是不行的。解法:随机增量算法参考http://www.2cto.com/kf/201208/149602.htmlalgorithm:A、令Ci表示为前i个点的最小覆盖圆。当加入新点pi时如果pi不在Ci-1里那么pi必定在Ci的边界上。B、再从新考...
阅读全文
摘要:链接求某一点到其它点距离和最小,求这个和,这个点 为费马点。做法:模拟退火 1 #include 2 #include 3 #include 4 #include 5 #include 6 #include 7 #include 8 #include 9 #include10 using name...
阅读全文
摘要:链接题目说给你n个水箱,初始是没有水的,每个的高低位置可能不同,给了你初始的水箱底部所处的水平线位置,问给你V体积水时,水的水平线位置。直接二分位置p,对于每一个底部低于水平线位置的水箱,里面的水的体积 = min(h,p-b)*w*d; 1 #include 2 #include 3 #incl...
阅读全文
摘要:链接逆时针给出线段,如果模板是顺时针的修改下系数的符号进行平面交即可。 1 #include 2 #include 3 #include 4 #include 5 #include 6 #include 7 #include 8 #include 9 #include 10 us...
阅读全文
摘要:链接根据距离可以列得直线方程,附上初始矩形的四个顶点,依次用直线切割。 1 #include 2 #include 3 #include 4 #include 5 #include 6 #define eps 1e-8 7 using namespace std; 8 const...
阅读全文
摘要:链接根据题意可以设三段路程分别为A,B,C那么总时间t = A/V+B/U+C/W.这样根据时间大小关系可以跟其余n-1个联立形成n-1个方程。化简后为A(1/vj-1/vi)+B(1/uj-1/ui)+C(1/wj-1/wi)>0这样就可以按照顺时针进行半平面交。初始需要加一个大的平面,可以加上4...
阅读全文
摘要:链接将边长向内推进r,明显这样把第一个圆的圆心放在新的边长是肯定是最优的,与原本边相切,然后再找新多边上的最远的两点即为两圆心。 1 #include 2 #include 3 #include 4 #include 5 #include 6 #include 7 #include ...
阅读全文
摘要:链接求凸多边形内一点距离边最远。做法:二分+半平面交判定。二分距离,每次让每条边向内推进d,用半平面交判定一下是否有核。本想自己写一个向内推进。。仔细一看发现自己的平面交模板上自带。。 1 #include 2 #include 3 #include 4 #include 5 #incl...
阅读全文
摘要:链接居然是WF的水题~二进制枚举砍哪些树,剩余的树围成一个凸包。因为传数组WA了两发,忘记修改排序数组中的p[0]; 1 #include 2 #include 3 #include 4 #include 5 #include 6 #include 7 #include 8 #in...
阅读全文
摘要:链接繁琐细节题。1、线段无交点时,ans=0;2、如图 假设过p3.y的水平线与p1p2相交因为雨是垂直下落的,左图的情况是无法收集到雨水的,而这种情况有一种简便的判定方式 cross(p1-p2,p3-p4)与cross((p1+(0,1))-p1,p1,p3)同号对于右边的,阴影部分即为ans,...
阅读全文
摘要:链接繁琐。处理出来所有的线段,再判断相交。对于正方形的已知对角顶点求剩余两顶点 (列出4个方程求解)p[1].x=(p[0].x+p[2].x+p[2].y-p[0].y)/2;p[1].y=(p[0].y+p[2].y+p[0].x-p[2].x)/2;p[3].x=(p[0].x+p[2].x-...
阅读全文
摘要:链接几何细节题。对于每一个障碍物可以求出它在地产线上的覆盖区间,如下图。紫色部分即为每个障碍物所覆盖掉的区间,求出所有的,扫描一遍即可。几个需要注意的地方:直线可能与地产线没有交点,可视区间可能包含地产线的端点,扫描的时候保留当前扫到的最大值。代码中的数据很经典,供参考。 1 #include ...
阅读全文
摘要:链接这题其实与几何没太大关系,还不错的题目。参考吴永辉的算法设计书。用lefi、rigi分别表示正方形在x轴上的投影。为了避免用小数,把边长都扩大sqrt(2)倍,这样lef1 = 0,rig1 = 2*a1;lefi = max{rigj-abs(ai-aj)}rigi = lefi+2*ai;求...
阅读全文
摘要:链接枚举两点 若不和任何线段相交 建边为dis(i,j) floyd求最短路 1 #include 2 #include 3 #include 4 #include 5 #include 6 #include 7 #include 8 #include 9 #include 10...
阅读全文
摘要:链接以下所有文章均转载(http://blog.csdn.net/acmaker/article/details/3176910) 转载请注明出处!考虑如下的算法, 算法的输入是两个分别有 m 和 n 个顺时针给定顶点的凸多边形 P 和 Q。计算P上y坐标值最小的顶点(称为yminP) 和Q上y坐标...
阅读全文
摘要:链接模板 稍加一点标记模板 1 #include 2 #include 3 #include 4 #include 5 #include 6 #include 7 #include 8 #include 9 #include 10 using namespace std; 11 ...
阅读全文
摘要:导论书上几何部分有讲 二分递归算法 将p数组分为左右两部分 分别递归求出两部分的最小距离 然后再求出左右之间的最小距离 取其最小。因为左右的最小距离minz已经求出,在求它俩部分之间的最小距离时就有了限制,fabs(x1-x2)>1; int i,j,g = l,o = mid+1; f...
阅读全文

浙公网安备 33010602011771号