题解:计算凸包……
#include#include #include #include using namespace std; struct node{int x,y;}vex[1005],stackf[1005]; bool cmp1(node a,node b){ if(a.y==b.y)return a.x 0?1:0; } int main(){ int t; while(scanf("%d",&t),t!=0){ for(int i=0;i =1&&cross(stackf[top-1],stackf[top],vex[i])<0)top--; stackf[++top]=vex[i]; } double s=0; for(int i=1;i<=top;i++)s+=dis(stackf[i-1],stackf[i]); s+=dis(stackf[top],vex[0]); printf("%.2f\n",s); } } return 0;}