Find Convex hull template
struct Point{Double XY;Double ValLen;}points[20];PointPoints1[20];PointPoints2[20];Constint INF=1e8;boolCmp(PointA,PointB){If(A. x==b. x)Return a. Y<b. Y;Return a. x<b. x;}DoubleChaji(PointA,PointB,PointC,PointD){Return(b. x-A. x) * (d. Y-C. Y)-(b. Y-A. Y) * (d. x-C. x);}int real[20];IntCover(int Potnum,int n){Sort(Points1, Points1+potnumCmp);int Ansnum=0;For(int I=0; I<potnum; I++){While(Ansnum>1&&Chaji(points2[Ansnum-2],points2[Ansnum-1],points2[Ansnum-1],points1[I]) <0) Ansnum--; Points2[Ansnum++]=points1[I];}int k=ansnum;For(int I=potnum-2; I>=0; I--){While(Ansnum>k&&Chaji(points2[Ansnum-2],points2[Ansnum-1],points2[Ansnum-1],points1[I]) <0) Ansnum--; Points2[Ansnum++]=points1[I];}If(n>1) Ansnum--;Return Ansnum;}Doubleway (point a ,point B) Span class= "Sh-cbracket" >{return sqrt ((A.x-b.x.x-b.x) + (A.y-b.y) * (A.y-b.y}
The convex hull (two times scanning, the method of the upper and lower convex package is obtained)