hdu 1392 Surround the Trees(凸包模板题)
来源:互联网 发布:照片制作软件下载 编辑:程序博客网 时间:2024/06/05 08:29
hdu 1392 Surround the Trees
凸包模板直接套,注意n==2的时候只算一半
#include<cstdio>#include<cstring>#include<cmath>#include<algorithm>using namespace std;#define MAXN 105struct point{ int x,y; bool operator < (const point &a) const { if(a.x==x) return y<a.y; else return x<a.x; }};struct vector{ int x,y; vector(int x,int y):x(x),y(y){}};vector operator - (point a,point b){ return vector(a.x-b.x,a.y-b.y);}int cross(vector a,vector b){ return a.x*b.y-a.y*b.x;}double getlen(point a,point b){ return sqrt((a.x-b.x)*(a.x-b.x)+(a.y-b.y)*(a.y-b.y));}int convex_hull(point *p,int n,point *ch){ sort(p,p+n); int m=0; for(int i=0;i<n;i++) { while(m>1&&cross(ch[m-1]-ch[m-2],p[i]-ch[m-2])<0) m--; ch[m++]=p[i]; } int k=m; for(int i=n-2;i>=0;i--) { while(m>k&&cross(ch[m-1]-ch[m-2],p[i]-ch[m-2])<0) m--; ch[m++]=p[i]; } if(n>1) m--; return m;}int main(){ point p[MAXN],ch[MAXN]; int n; while(scanf("%d",&n)!=EOF&&n) { for(int i=0;i<n;i++) scanf("%d%d",&p[i].x,&p[i].y); int m=convex_hull(p, n, ch); double ans=0; for(int i=0;i<m;i++) ans+=getlen(ch[i], ch[(i+1)%m]); if(n==2) ans/=2.0; printf("%.2lf\n",ans); } return 0;}
0 0
- hdu 1392 Surround the Trees 凸包模板题
- hdu 1392 Surround the Trees(凸包模板题)
- hdu 1392 Surround the Trees(凸包模板)
- HDU 1392 Surround the Trees(凸包模板)
- HDU 1392 Surround the Trees(凸包)
- hdu-1392 Surround the Trees(凸包)
- HDU 1392 Surround the Trees(凸包)
- hdu 1392 Surround the Trees 凸包
- hdu 1392 Surround the Trees【凸包】
- HDU-1392 Surround the Trees(凸包板子题)
- ZJU 1453(hdu 1392) Surround the Trees(凸包)
- hdu 1392 Surround the Trees(凸包模版)
- hdu 1392 Surround the Trees 基础 二维凸包 算法
- HDU 1392 Surround the Trees 构造凸包
- HDU 1392 Surround the Trees【凸包周长】
- hdu 1392 Surround the Trees(凸包)
- HDU-#1392 Surround the Trees(Graham & Andrew +凸包)
- HDU 1392 Surround the Trees 凸包的周长
- 《深入理解Java虚拟机》笔记
- MySQL数据库函数
- 使用jsoup解析html页面
- Swift——简介来自苹果的编程语言
- 让li 横排显示的CSS代码
- hdu 1392 Surround the Trees(凸包模板题)
- JAVA SSH 框架介绍
- 统治世界的十大算法
- Java执行linux命令 获取执行结果
- Mysql日期和时间函数大全
- Java并发编程基础
- 来自苹果的编程语言——Swift简介
- HttpClient 学习整理
- Fatfs文件系统崩溃问题