BZOJ2564
将两个凸包的边按极角顺序合并即可
#include <cstdio> #include <cmath> #include <algorithm> #define LDB long double #define LL long long using namespace std; const LDB eps=1e-6; int totcnt=0,n,m; struct data{ LDB x,y,alp; }a[500011],tmp[500011],sta[500011],ans[500011]; inline data operator - (const data&a,const data&b) { return (data){a.x-b.x,a.y-b.y,a.alp};} LL X(data a,data b){ return((LL)a.x*(LL)b.y-(LL)a.y*(LL)b.x); } LDB dis(data a,data b){ return(sqrt((long double)((a.x-b.x)*(a.x-b.