cogs896. 圈奶牛
2014-06-03 19:33
274 查看
//http://218.28.19.228/cogs/problem/problem.php?pid=896
#include<algorithm> #include<iostream> #include<cstdio> #include<cmath> struct point{ <span style="white-space:pre"> </span>double x,y; }p[10001],s[10001]; double dis(point a,point b){return sqrt((a.x-b.x)*(a.x-b.x)+(a.y-b.y)*(a.y-b.y));} double mul(point p1,point p2,point p0){return (p1.x-p0.x)*(p2.y-p0.y)-(p2.x-p0.x)*(p1.y-p0.y);} inline bool cmp(point a,point b){if(!mul(p[0],a,b))return dis(a,p[0])<dis(b,p[0]);else return mul(p[0],a,b)>0;} using namespace std; int n;double ans; void graham(){ <span style="white-space:pre"> </span>int top=2,k=0;point t; <span style="white-space:pre"> </span>for(int i=1;i<n;i++) <span style="white-space:pre"> </span> if((p[k].y>p[i].y)||(p[k].y==p[i].y&&p[k].x>p[i].x))k=i; <span style="white-space:pre"> </span>t=p[0];p[0]=p[k];p[k]=t; <span style="white-space:pre"> </span>sort(p+1,p+n,cmp); <span style="white-space:pre"> </span>s[0]=p[0],s[1]=p[1],s[2]=p[2]; <span style="white-space:pre"> </span>for(int i=3;i<n;i++){ <span style="white-space:pre"> </span>while(top&&mul(p[i],s[top],s[top-1])>=0)top--; <span style="white-space:pre"> </span>s[++top]=p[i]; <span style="white-space:pre"> </span>} <span style="white-space:pre"> </span>s[++top]=p[0]; <span style="white-space:pre"> </span>for(int i=0;i<top;i++)ans+=dis(s[i],s[i+1]); } int main(){ <span style="white-space:pre"> </span>freopen("fc.in","r",stdin); <span style="white-space:pre"> </span>freopen("fc.out","w",stdout); <span style="white-space:pre"> </span>scanf("%d",&n); <span style="white-space:pre"> </span>for(int i=0;i<n;i++)scanf("%lf%lf",&p[i].x,&p[i].y); <span style="white-space:pre"> </span>graham(); <span style="white-space:pre"> </span>printf("%.2f",ans); <span style="white-space:pre"> </span>cin>>n; <span style="white-space:pre"> </span>return 0; }
相关文章推荐
- COGS 896. 圈奶牛 (凸包)
- cogs896. 圈奶牛
- 【COGS & USACO】896. 圈奶牛(凸包)
- cogs 896. 圈奶牛
- [COGS896]圈奶牛(凸包)
- COGS [USACO Mar07] 奶牛交通
- cogs896 圈奶牛
- COGS1212. 奶牛排队
- cogs157. [USACO Nov07] 奶牛跨栏 x
- COGS896圈奶牛
- [cogs 1117]奶牛排队
- [cogs 896]圈奶牛(凸包)
- [悬线法] COGS 1722 [WC2002]奶牛浴场
- [cogs896]圈奶牛
- COGS 497——奶牛派对
- 【最短路】【水题】【cogs 497】奶牛派对
- COGS——T 803. [USACO Hol10] 政党 || 1776: [Usaco2010 Hol]cowpol 奶牛政坛
- [COGS 896] 圈奶牛
- COGS130. [USACO Mar08] 游荡的奶牛[DP]
- 『天涯杂谈』(最新)三鹿事件:目前全国奶牛情绪稳定(图片)