cogs896. 圈奶牛
来源:互联网 发布:战争风云老僧扫矿软件 编辑:程序博客网 时间:2024/04/18 20:57
http://218.28.19.228/cogs/problem/problem.php?pid=896
#include<algorithm>#include<iostream>#include<cstdio>#include<cmath>struct point{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(){int top=2,k=0;point t;for(int i=1;i<n;i++) if((p[k].y>p[i].y)||(p[k].y==p[i].y&&p[k].x>p[i].x))k=i;t=p[0];p[0]=p[k];p[k]=t;sort(p+1,p+n,cmp);s[0]=p[0],s[1]=p[1],s[2]=p[2];for(int i=3;i<n;i++){while(top&&mul(p[i],s[top],s[top-1])>=0)top--;s[++top]=p[i];}s[++top]=p[0];for(int i=0;i<top;i++)ans+=dis(s[i],s[i+1]);}int main(){freopen("fc.in","r",stdin);freopen("fc.out","w",stdout);scanf("%d",&n);for(int i=0;i<n;i++)scanf("%lf%lf",&p[i].x,&p[i].y);graham();printf("%.2f",ans);cin>>n;return 0;}
0 0
- cogs896. 圈奶牛
- COGS896圈奶牛
- [cogs896]圈奶牛
- [COGS896]圈奶牛(凸包)
- cogs896 圈奶牛(凸包)
- [USACO5.1.1] 圈奶牛
- 圈奶牛<计算几何><C++>
- 【USACO5.1.1】圈奶牛(BSOI2142)
- [cogs 896]圈奶牛(凸包)
- COGS 896. 圈奶牛 (凸包)
- 求凸包 cogs896
- 计算几何 usaco Fencing the Cows 圈奶牛
- P2742 [USACO5.1]圈奶牛Fencing the Cows
- JZOJ1312.【USACO题库】5.1.1 Fencing the Cows圈奶牛
- [luogu2742]:[USACO5.1]圈奶牛Fencing the Cows
- 奶牛
- USACO 5.1.1 Fencing the Cows 圈奶牛 题解与分析
- 凸包——Luogu2742 [USACO5.1]圈奶牛Fencing the Cows
- varnish 架构网站中addthis中加入动态链接 参数:aid
- 2440裸奔界面控制MCX314
- 【2014.06.03】
- CSS中透明度的设置(兼容多种浏览器)
- android课程文库改造心得--还是做程序员好
- cogs896. 圈奶牛
- 手机中预置联系人(姓名,号码,头像)
- 题目1447:最短路
- 浅谈网页压缩GZIP
- android,IOS培训课件
- MongoDB权威指南 第01章 简介
- 【足迹C++primer】18、类的作用域
- ZOJ-1300
- apple Swift语言入门教程