转自:
程序:
#include#include #include #include using namespace std;typedef struct{ double x,y; }P;typedef struct{ int s,t; double k,l;}E;int n,top;double sum;P p[10010];E e[20020];bool comp(const P &a,const P &b){ return a.x 1&&e[top-1].k>e[top].k) { top--; e[top].t=e[top+1].t; e[top].l=dist(e[top].s,e[top].t); e[top].k=slope(e[top].s,e[top].t); } i++; } while (top>0) sum+=e[top--].l; i=1; while (i 1&&e[top-1].k 0) sum+=e[top--].l; printf("%.2f\n",sum); return 0;}