bzoj1964 hull 三維凸包

2022-09-19 08:03:12 字數 827 閱讀 4749

傳送門

二維平面四個點求凸包面積->任選三個點面積之和/2

三維平面五個點求凸包體積->任選四個點體積之和/2

二維平面三個點面積->二個二維向量行列式值的絕對值/2

三維平面四個點體積->三個三維向量行列式值的絕對值/6

1

//achen

2 #include3 #include4 #include5 #include6 #include7 #include8 #include9 #include10 #include

11 #include12

#define formylove return 0

13#define for(i,a,b) for(int i=(a);i<=(b);i++)

14#define rep(i,a,b) for(int i=(a);i>=(b);i--)

15 typedef long

long

ll;16 typedef double

db;17

using

namespace

std;

1819 templatevoid read(t &x)

2526

struct

pt 29 }p[10

];30 pt operator -(const pt&a,const pt&b)

3132

db calc(pt p1,pt p2,pt p3,pt p4)

3738

intmain()

51formylove;

52 }

view code

三維凸包 BZOJ 最佳包裹

模板題解 增量法怎麼這麼強啊。擾動很重要,直接掛50分。判斷可視邊緣的方法很神奇,將每個三角面的三邊順方向打有向標記,那麼只有乙個方向有邊的點對就是邊緣點對,直接建面。總的面數是o n o n o n 複雜度為o n 2 o n 2 o n2 可以用乙個有理有據但是有點麻煩的優化 可以做到o n l...

BZOJ1209 最佳包裹 (三維凸包 增量法)

求三維凸包的表面積。n 100 n le100 n 100 暴力往當前的凸包裡加點。o n 2 o n 2 o n2 題解詳見大佬部落格 擾動函式sha keshake shak e是為了避免四點共面。實測e ps epsep s開到1e 101e 10 1e 10才過 include using ...

BZOJ1209 最佳包裹 (三維凸包 增量法)

求三維凸包的表面積。n 100n 1 00暴力往當前的凸包裡加點。o n 2 o n2 題解詳見大佬部落格 擾動函式sha kesh ake是為了避免四點共面。實測epse ps開到1e 10 1e 1 0才過 include using namespace std define il inline...