poj 2187 Beauty Contest Andrew
来源:互联网 发布:java gbk utf8 转换 编辑:程序博客网 时间:2024/06/06 17:16
#include <stdio.h>#include <string.h>#include <iostream>#include <algorithm>#include <vector>#include <queue>#include <stack>#include <set>#include <map>#include <string>#include <math.h>#include <stdlib.h>#include <time.h>using namespace std;struct Point{ int x,y;} p[100000+5],ch[100000+5];Point operator - (Point a,Point b){ Point c; c.x=a.x-b.x; c.y=a.y-b.y; return c;}int cross(Point a,Point b){ return a.x*b.y-b.x*a.y;}double dot(Point a,Point b){ return (a.x-b.x)*(a.x-b.x)+(a.y-b.y)*(a.y-b.y);}bool cmp(Point a,Point b){ if(a.x==b.x) return a.y<b.y; else return a.x<b.x;}int main(){ int n,m,i,j,k; double sum,ans; scanf("%d",&n); for(i=0; i<n; i++) scanf("%d%d",&p[i].x,&p[i].y); sort(p,p+n,cmp); m=0; for(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]; } k=m; for(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--; ans=0; for(i=0; i<m; i++) for(j=i+1; j<m; j++) { sum=dot(ch[i],ch[j]); if(sum>ans) ans=sum; } printf("%.0f\n",ans); return 0;}
0 0
- poj 2187 Beauty Contest Andrew
- POJ 2187 Beauty Contest
- poj 2187 Beauty Contest
- POJ 2187 Beauty Contest
- poj 2187 Beauty Contest
- POJ 2187 Beauty Contest
- POJ 2187 Beauty Contest
- poj 2187 Beauty Contest
- POJ 2187 Beauty Contest
- poj 2187 Beauty Contest
- Poj 2187 Beauty Contest
- poj 2187 Beauty Contest
- POJ 2187 Beauty Contest
- POJ 2187 Beauty Contest
- POJ 2187 Beauty Contest
- POJ 2187 Beauty Contest
- POJ 2187--Beauty Contest
- poj 2187 Beauty Contest
- 使用link标签导入外部样式表
- URAL 1073Square Country
- 怎样去除中文中的空格换行以及制表符
- Android定义生命周期的优点
- 【Android UI设计与开发】第03期:引导界面(三)仿微信引导界面以及动画效果
- poj 2187 Beauty Contest Andrew
- Wpf ImageSource对象与Bitmap对象的互相转换
- 指针算术
- 迭代器Iterator
- Codeforces Round #251 (Div. 2) 439D Devu and his Brother(脑洞)
- HTML/CSS基础
- Linux平台上SQLite数据库教程(二)——C语言API介绍
- POJ 2184Cow Exhibition(01背包变形)
- linux学习笔记1-虚拟机安装 UBUNTU u盘无法识别