经典凸包问题!!!!
AC代码如下:
#include
#include
#include
#include
#include
using namespace std; struct H { double x,y; }trees[105]; bool cmp(H a,H b) { return a.x
>n,n) { tt=0; for(i=0;i
>trees[i].x>>trees[i].y; sort(trees,trees+n,cmp); for(i=0;i
1&&xj(a[tt-1]-a[tt-2],b[tt-1]-b[tt-2],trees[i].x-a[tt-2],trees[i].y-b[tt-2])) tt--; a[tt]=trees[i].x;b[tt++]=trees[i].y; } int k=tt; for(i=n-2;i>=0;i--) { while(tt>k&&xj(a[tt-1]-a[tt-2],b[tt-1]-b[tt-2],trees[i].x-a[tt-2],trees[i].y-b[tt-2])) tt--; a[tt]=trees[i].x;b[tt++]=trees[i].y; } double sum=0; for(i=1;i