POJ_2187_Beauty Contest(凸包+暴力)
来源:互联网 发布:淘宝打折app哪个好 编辑:程序博客网 时间:2024/06/05 22:57
题型:计算几何
题意:有n个点,求出这些点中最远的两个点的距离的平方。
分析:
最远的两个点一定在凸包上,所以先求出凸包,然后找点的时候最坏情况下复杂度为O(n^2),好在数据没有这么恶心,所以暴力也能AC。
代码:
#include<cstring>#include<cmath>#include<cstdio>#include<algorithm>#include<iostream>using namespace std;int n;struct point{ int x,y;}pnt[60000],res[60000];bool mult(point sp,point ep,point op){ return (sp.x-op.x)*(ep.y-op.y)>=(ep.x-op.x)*(sp.y-op.y);}bool operator < (const point &l,const point &r){ return l.y<r.y || (l.y==r.y && l.x<r.x);}int graham(){ int i,len,k=0,top=1; sort(pnt,pnt+n); if(n==0) return 0; res[0] = pnt[0]; if(n==1) return 1; res[1] = pnt[1]; if(n==2) return 2; res[2] = pnt[2]; for(i=2;i<n;i++){ while(top && mult(pnt[i],res[top],res[top-1])) top--; res[++top] = pnt[i]; } len=top; res[++top] = pnt[n-2]; for(i=n-3;i>=0;i--){ while(top!=len && mult(pnt[i],res[top],res[top-1])) top--; res[++top] = pnt[i]; } return top;}int dis(point a,point b){ return (a.x-b.x)*(a.x-b.x)+(a.y-b.y)*(a.y-b.y);}int main(){ while(~scanf("%d",&n)){ int MAXN=0; for(int i=0;i<n;i++){ scanf("%d%d",&pnt[i].x,&pnt[i].y); } int top=graham(); for(int i=0;i<top;i++){ for(int j=0;j<top;j++){ if(i==j) continue; MAXN = max(MAXN,dis(res[i],res[j])); } } printf("%d\n",MAXN); } return 0;}
- POJ_2187_Beauty Contest(凸包+暴力)
- POJ 2187 Beauty Contest(凸包暴力法)
- Beauty Contest--凸包
- POJ2187--凸包--Beauty Contest
- poj2187 Beauty Contest 凸包
- POJ Beauty Contest (凸包)
- poj_2187凸包,暴力解法
- PKU 2187 Beauty Contest (凸包+枚举)
- POJ2187 Beauty Contest 凸包+旋转卡壳
- poj2187 Beauty Contest 凸包+旋转卡壳
- POJ 2187 Beauty Contest (凸包)
- POJ 2187 Beauty Contest 凸包
- poj 2187 Beauty Contest(凸包)
- poj2187Beauty Contest 凸包最大距离
- POJ 2187 Beauty Contest (凸包)
- poj 2187 Beauty Contest(凸包)
- POJ 2187 Beauty Contest(凸包)
- poj 2187 Beauty Contest(凸包)
- 【iOS界面布局】 frame 与 bounds 的区别与关系
- UVA 270 (13.11.06)
- Sencha Architect 2: A WYSIWYG IDE for Building Desktop and Mobile HTML5 App
- Event Code: 3005 An unhandled exception has occurred.
- ftp服务器端协议分析以及java版本实现
- POJ_2187_Beauty Contest(凸包+暴力)
- TypedArray的用法和declare-styleable:自定义控件的属性
- 点击页面链接跳转到指定位置
- android适配各种分辨率的问题
- Java 异常集
- 将快逸集成到自己的项目中
- 单入口开发模式
- Ubuntu下添加开机启动脚本
- MessageFormat用法