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