计算几何
風吹过
这个作者很懒,什么都没留下…
展开
-
向量知识要点
1、向量的加法 向量的加法满足平行四边形法则和三角形法则。 AB+BC=AC。 a+b=(x+x',y+y')。 a+0=0+a=a。 向量加法的运算律: 交换律:a+b=b+a; 结合律:(a+b)+c=a+(b+c)。 2、向量的减法 如果a、b是互为相反的向量,那么a=-b,b=-a,a+b=0. 0的反向量为0 AB-AC原创 2013-08-07 16:16:53 · 952 阅读 · 0 评论 -
zoj 3647 Gao the Grid(矩阵对角线三点共线)
题意:给你一个矩阵,任选三点,问能形成多少个三角形?如 n=3,m=4解析:关键是求斜线上的三点个数: 枚举矩阵,有个公式,即一个(a*b)矩阵,在主对角线上,两端点+中间一点形成三点共线的个数为 (gcd(a,b)-1)*2#include#include#includeusing namespace std;typedef long long LL;LL gcd原创 2013-08-21 15:15:56 · 1184 阅读 · 0 评论 -
uva 11178 - Morley's Theorem (直线旋转相交)
差不多直接套模板了。。#include#includestruct Point{ double x, y; Point(double x=0, double y=0):x(x),y(y) { }};typedef Point Vector;Vector operator + (const Vector& A, const Vector& B){原创 2013-08-13 08:56:31 · 422 阅读 · 0 评论 -
LA 3263 That Nice Euler Circuit (点、面、边的关系)
欧拉定理:设平面图的顶点数为V,边数为E,面数为F ,则,V+F-E=2;但要注意顶点和边的计数,特别的去除重复的点#include#include#includeusing namespace std;const double eps = 1e-10;int dcmp(double x){ if(fabs(x) < eps) return 0; el原创 2013-08-14 09:03:44 · 825 阅读 · 0 评论 -
计算几何模板(白皮书)
const double eps=1e-8;//精度const int INF=0x3f3f3f3f;const double PI=acos(-1.0);inline int dcmp(const double& x) //判断double等于0或。。。{ if(fabs(x)<eps)return 0; else return x<0?-1:1;}struct Po原创 2013-08-14 14:42:25 · 826 阅读 · 0 评论 -
uva 11796 - Dog Distance(投影位移)
呵呵,模板一贴,代码就不用写多少了。。。题意:两只狗沿各自的折线跑,同是到达终点,同时出发,给出个折点的坐标,求狗最大距离和最小距离的差本题要注意投影位移,把折线分为一段段线段,按各自的速度分,就相当于求两狗沿各自的线段跑,最后将线段叠加起来就可以了投影位移:在各自的线段,a起点为pa,沿va向量跑,b起点为pb,沿vb向量跑,则求线段(pa,pb,pb+vb-va)距离就可以原创 2013-08-16 10:48:51 · 698 阅读 · 0 评论