上一页 1 ··· 27 28 29 30 31 32 33 34 35 ··· 38 下一页
摘要: 模拟退火算法。暂时不是很理解,待我理解了再写一个总结。求的是球的最小包含#include #include #include #include #include using namespace std;const int MAXN=35;const double inf=1e10;const dou... 阅读全文
posted @ 2014-08-11 10:38 chenjunjie1994 阅读(182) 评论(0) 推荐(0) 编辑
摘要: 求的是凸包有多少个面。注意,求的是面。这就需要把同一个面的三角形合并。只需判断两个三角形的法向量是否同向平行。/*增量法求凸包。选取一个四面体,同时把它各面的方向向量向外,增加一个点时,若该点与凸包上的某些面的方向向量在同一侧,则去掉那些面,并使某些边与新增点一起连成新的凸包上的面。 */ #inc... 阅读全文
posted @ 2014-08-10 15:16 chenjunjie1994 阅读(179) 评论(0) 推荐(0) 编辑
摘要: 题意很明白要求多边形重心。方法已在上篇讲过了。 #include #include #include #include #include using namespace std; const int MAXN=1000005; struct point { double x,y; }; ... 阅读全文
posted @ 2014-08-10 14:11 chenjunjie1994 阅读(141) 评论(0) 推荐(0) 编辑
摘要: 计算凸包重心到各面的最短距离。若知道重心,按四面体用体积法即可求出高。关键在于,多面体重心的求法。这必须把多面体分割成多个四面体来求。下面从多边形的重心说起。一般来用,对于一个多边形(p0,p1,p2....pn-1),其重心一般为pc.x=(p0.x+p1.x+....)/n对于y也一样。但这其实... 阅读全文
posted @ 2014-08-10 11:11 chenjunjie1994 阅读(289) 评论(0) 推荐(0) 编辑
摘要: 直线关于球的多次反射,求最后一次反射点#include #include #include #include #include using namespace std;const double inf=1e10;const double eps=1e-8;struct point { doub... 阅读全文
posted @ 2014-08-10 09:26 chenjunjie1994 阅读(130) 评论(0) 推荐(0) 编辑
摘要: 三维凸包/*增量法求凸包。选取一个四面体,同时把它各面的方向向量向外,增加一个点时,若该点与凸包上的某些面的方向向量在同一侧,则去掉那些面,并使某些边与新增点一起连成新的凸包上的面。 */ #include #include #include #include #include using name... 阅读全文
posted @ 2014-08-10 09:16 chenjunjie1994 阅读(196) 评论(0) 推荐(0) 编辑
摘要: 主要利用PICK定理与边点数上的GCD的关系求解。三角形一条边上的所有整数点(包括顶点)可以首先将这条边移到(0, 0)->(x, y)。这时,(x/gcd(x, y), y/gcd(x, y))肯定在这条边上,并且是整数点,其余所有整数点的可以表示为k(x/gcd(x, y), y/gcd(x, ... 阅读全文
posted @ 2014-08-09 19:58 chenjunjie1994 阅读(197) 评论(0) 推荐(0) 编辑
摘要: 坑,直接把公路看成X轴来做,然后,排序扫描一下,你懂的。#include #include #include #include using namespace std;const int MAXN=10100;struct Village{ double l,r;};Village p[MAXN];... 阅读全文
posted @ 2014-08-09 11:55 chenjunjie1994 阅读(211) 评论(0) 推荐(0) 编辑
摘要: 求异面直线距离及公垂线公式转自:http://blog.csdn.net/zhengnanlee/article/details/11870595 (求公垂线)两条直线:构造方程:求出公垂线向量:记公垂线和l1形成的平面为alpha,下面求它:令:联立:#include #include #incl... 阅读全文
posted @ 2014-08-09 10:50 chenjunjie1994 阅读(394) 评论(0) 推荐(0) 编辑
摘要: 题目多读几次就明白了。主要是求异面直线的距离,然后用距离和两圆半径之和作比较。空间直线的距离d=|AB*n| / |n| (AB表示异面直线任意2点的连线,n表示法向量,法向量为两条异面直线方向向量的叉积,|n|表示模。#include #include #include #include #inc... 阅读全文
posted @ 2014-08-08 21:54 chenjunjie1994 阅读(206) 评论(0) 推荐(0) 编辑
摘要: 列出不等式后,把同时除Z把它去掉。注意了,这里应该 是把直线变两点表示的向量更为简单,我开始就直接用直线写,后来,唉,写不下去了。。#include #include #include #include using namespace std;const int MAX=110;const doub... 阅读全文
posted @ 2014-08-08 11:33 chenjunjie1994 阅读(246) 评论(0) 推荐(0) 编辑
摘要: 如果你理解上一题的把多边形各边向内推进R的含义,那么,这题就是水题了^-^当各边都向内推进R时,所得交点即可作为半径为R的圆的圆心了,那么,枚举推进后多边形各点的距离,取最远两点,即为答案了。#include #include #include #include using namespace st... 阅读全文
posted @ 2014-08-07 14:40 chenjunjie1994 阅读(143) 评论(0) 推荐(0) 编辑
摘要: /*在一个多边形内切最大的圆,可以知道,当一个多形放大或缩小时,内切圆也随比例放大或缩小。于是,在多边形各边向内压缩R时,最大圆半径必定减少R。那么,直至为半平面交空集时,得到R即为最大半径。下面,想解释一下 坐标转换代码。坐标转换可以通过解方程求得。设转换后为x,y.按多边形顺时针顺序排,有:(x... 阅读全文
posted @ 2014-08-07 13:42 chenjunjie1994 阅读(158) 评论(0) 推荐(0) 编辑
摘要: 这题,加了精度错了,不加精度反而对了。。。#include #include #include #include #include using namespace std;const int MAXN=110;const double eps=1e-8; struct point { doub... 阅读全文
posted @ 2014-08-07 11:06 chenjunjie1994 阅读(222) 评论(0) 推荐(0) 编辑
摘要: 发现好多半平面交用N^2的增量法都能过诶。。。#include #include #include #include #include using namespace std;const int MAXN=1550;const double eps=1e-8;struct point { doubl... 阅读全文
posted @ 2014-08-06 15:36 chenjunjie1994 阅读(147) 评论(0) 推荐(0) 编辑
上一页 1 ··· 27 28 29 30 31 32 33 34 35 ··· 38 下一页