計算幾何基礎

2022-05-11 05:49:15 字數 2203 閱讀 7101

凸包演算法

#include#includeusing namespace std;

const int n=5e5+11;

int n,m;

struct point

point(int _x,int _y):

x(_x),y(_y){}

friend inline point operator -(const point a,const point b)

friend inline int operator *(const point a,const point b)

inline int norm()

}p[n],q[n];

inline bool operator <(const point a,const point b)

inline void graham()

}inline int area()

int main()

旋轉卡殼

#include#includeusing namespace std;

const int n=5e5+11;

int n,m;

inline int max(int a,int b)

struct point

point(int _x,int _y):

x(_x),y(_y){}

friend inline point operator -(const point a,const point b)

friend inline int operator *(const point a,const point b)

inline int norm()const

}p[n],q[n];

inline bool operator <(const point a,const point b)

inline void graham()

}inline int nxt(int x)

inline int area(const point a,const point b,const point c)

inline int query()

return res;

}int main()

bzoj1069

先做凸包,再列舉凸包的對角線,對於剩下的兩個凸多邊形做旋轉卡殼

#include#includeusing namespace std;

typedef double db;

int n,m;

const int n=1e6+11;

struct point

point(db _x,db _y):

x(_x),y(_y){}

friend inline point operator-(const point a,const point b)

friend inline db operator*(const point a,const point b)

inline db norm()const

}p[n],q[n];

inline bool operator<(const point a,const point b)

inline void graham()

}inline int nxt(int x)

inline db abs(db x)

inline db max(db a,db b)

inline db solve()

}return ans*1.00/2.00;

}int main()

bzoj1185

先做凸包,再列舉凸包的一條邊,用旋轉卡殼做出該邊的平行線,然後用點積求矩形寬的極值(具有單調性)

複雜度o(n^2)

#include#include#include#define eps 1e-8

#define inf 1000000000

using namespace std;

double ans=1e60;

int n,top;

struct p

p(double _x,double _y):x(_x),y(_y){}

friend inline bool operator<(p a,p b)

inline void graham()

}}int main()

計算幾何 幾何基礎

這章早在2017年寒假就在培訓的時候由來自清華的hta老師上過了 但是本蒟蒻那時候並不是懂的太多 所以這週ww老師又上了一遍 大概記錄一下 大概就跟高中必修4的平面向量差不多 有上過的應該都會 a x1,y1 b x2,y2 a b x1x2 y1y2 a b a b cos a,b 運用 若a與b...

計算幾何基礎

1 向量叉積 ab ac 0 ac在ab的 逆時針方向,否則順時針 0 a b c 共線 class point p q 為向量 a,b,c為點 p q x1 y2 x2 y1 p a b q c a 即 x1 x0 y2 y0 x2 x0 y1 y0 計算 ab ac 的叉積 double cor...

計算幾何基礎提綱

一 約定格式 a 點 向量的表示 b 封裝向量加減法 點積 叉積 double mult struct point p1,struct point p2,struct point p3 double dis struct point p1,struct point p2 c 線段 兩個點隔得很遠,取...